尝试使用负数和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);
}
}
答案 0 :(得分:6)
首先,=
用于分配值。使用==
进行比较。
此外,如果您想要运行多行,则需要在{}
和if
语句后使用else
。
答案 1 :(得分: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.
}
答案 2 :(得分:2)
您的{ }
语句缺少if
。在没有if
的{{1}}语句中,只有if语句后面的行会受到{ }
结果的影响。
所以:
if-test
如果if (condition)
doSomething();
doSomethingElse();
和doSomething()
condition == true
,将执行doSomethingElse()
。
condition == true
当且仅当条件== true时,才会执行if (condition) {
doSomething();
doSomethingElse();
}
和doSomething()
。
答案 3 :(得分:1)
您正在使用赋值运算符来评估条件。
else if(backUp = -1)
应该是
else if(backup == -1)
答案 4 :(得分:1)
删除else
使用if(backup==-1).
答案 5 :(得分:1)
首先是你的缩进。
其次,如果要在给定某个条件的情况下执行多个语句,则需要将其放在像if(x) { /* do multiple things */ }
这样的代码块中。
第三,你的else if(backUp = -1)
无效,因为在if中需要一个布尔表达式,backUp = -1
是一个赋值,因此不会求值为布尔值(你可能想要backUp == -1)。
你可能想要循环n = n/10; i++;
部分,因为它现在永远不会超过1位。