'=='和'='之间有什么区别?

Joh*_*nna 0 java operators

我知道其中一个是按位而另一个是合乎逻辑的,但我无法弄明白:

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++允许您将赋值视为布尔运算,并且可能是许多拔毛错误的结果.

  • 它是一个等于表达式(可能是一个表达式语句).表达式的值是右手子表达式的值.如果x和y是布尔值或布尔值,则if(x = y)是完全合法的. (7认同)

小智 13

当你写'x = 0'时,你会说"在变量x中存储0".整个表达式的返回值为'0'(就像这样,你可以说愚蠢的事情,比如x = y = 0).

当你写'x == 0'时,它会说"x是否等于0?".此表达式的返回值将为"true"或"false".

在Java中,你不能只说if(0)因为if是否需要一个真/假的答案.所以把if(x = 0)不正确,但是如果(x == 0)没问题.


Dar*_*ron 5

==是比较运算符,=是赋值.