我知道其中一个是按位而另一个是合乎逻辑的,但我无法弄明白:
Scanner sc = new Scanner(System.in);
System.out.println("Enter ur integer");
int x=sc.nextInt();
if(x=0)//Error...it can not be converted from int to boolean
System.out.println("...");
Run Code Online (Sandbox Code Playgroud)
的错误意味着x不能转换到boolean的或结果x=0不能转换到boolean.
Fre*_*ory 23
==检查是否平等.=是作业.
你正在做的是:
if( x = Blah )- 在Java中,这个语句是非法的,因为你无法测试赋值语句的状态.具体来说,Java不会将赋值视为布尔运算,这在if语句中是必需的.这与C/C++形成对比,C/C++允许您将赋值视为布尔运算,并且可能是许多拔毛错误的结果.
小智 13
当你写'x = 0'时,你会说"在变量x中存储0".整个表达式的返回值为'0'(就像这样,你可以说愚蠢的事情,比如x = y = 0).
当你写'x == 0'时,它会说"x是否等于0?".此表达式的返回值将为"true"或"false".
在Java中,你不能只说if(0)因为if是否需要一个真/假的答案.所以把if(x = 0)不正确,但是如果(x == 0)没问题.