0

尝试使用负数和 if else 语句终止程序。有没有人看到这有什么问题谢谢。

import java.util.Scanner;

public class Assignment {
    public static void main(String args[]){
    int n;
    int i=0;

    System.out.print("Enter a Number:");
    Scanner scanner = new Scanner(System.in);
    n= scanner.nextInt();
    int backUp = n;
    if(n>0)

        n=n/10;
        i++;

        else if(backUp = -1)

        System.out.print("program terminated......");
            System.exit(0);



    System.out.println("Number of Digits in " +backUp +" is " +i);

    }
}
4

6 回答 6

6

首先,=是用于赋值。用于==比较。

此外,如果要运行多行,则需要使用{}afterif和语句。else

于 2013-10-09T08:39:33.947 回答
4
   else if(backUp =  -1)

应该

   else if(backUp == -1)

= 赋值运算符, == 用于比较

最后与错过{}

  if (n > 0) {
            n = n / 10;
            i++;
   } else if (backUp == -1) {
            System.out.print("program terminated......");
            System.exit(0);
   }else{
          // do something else. I have no idea. 
        }
于 2013-10-09T08:39:47.190 回答
2

您缺少{ }您的if- 陈述。在if没有 的语句中{ },只有 if 语句后面的行会受到if-test.

所以:

if (condition)
    doSomething();
    doSomethingElse();

将执行doSomething()ifcondition == truedoSomethingElse()no matter if condition == true

if (condition) {
    doSomething();
    doSomethingElse();
}

将同时执行doSomething()and doSomethingElse(),当且仅当 condition == true 时。

于 2013-10-09T08:41:55.787 回答
1

删除else使用if(backup==-1).

于 2013-10-09T08:43:39.127 回答
1

首先你的缩进。

其次,如果你想在给定条件下执行多个语句,你需要把它放在一个代码块中,比如if(x) { /* do multiple things */ }.

第三,您else if(backUp = -1)是无效的,因为您需要在 if 中使用布尔表达式,这backUp = -1是一个赋值,因此不会计算为布尔值(您可能需要 backUp == -1)。

而且您可能想要循环该n = n/10; i++;部分,因为现在它的计数永远不会超过 1 位。

于 2013-10-09T08:45:37.097 回答
1

您正在使用赋值运算符来评估条件。

else if(backUp = -1)

应该

else if(backup == -1)
于 2013-10-09T08:42:24.193 回答