比较if语句中的主要布尔值

时间:2016-01-22 06:32:34

标签: java boolean comparison

就原始布尔值而言,

之间有什么区别
if(someBoolean == false){}

if(someBoolean = false){}

我写了后者(在Eclipse中)期望抛出错误但没有错误。

5 个答案:

答案 0 :(得分:1)

==用于比较

=用于分配。

因此,在第一种情况下,您要比较值,并在第二种情况下进行分配。这两个语句都将成功编译和执行。

但是,如果正在寻找在if语句中使用它的有效方法,那么您可以简单地执行:

if(someBoolean)   //for checking true

if(!someBoolean)   //for checking false

答案 1 :(得分:0)

someBoolean = false将false值赋给该布尔值,而不是实际比较它是否为false。

=指定

==比较

答案 2 :(得分:0)

if(someBoolean=false)将false设置为someBoolean然后返回someBoolean,然后if语句判断someBoolean值,因此它将编译得很好。

但是这样的代码不会编译:

int val = 2;
if(val = 3){
}

它会编译错误:

  

InCompatible Types:必需:boolean,Found

因为它的返回值是int,所以不能改为if语句需要的布尔类型。

答案 3 :(得分:0)

someBoolean == false正在比较,返回一个布尔值 someBoolean = false正在决定返回一个布尔值

答案 4 :(得分:0)

if(someBoolean = false){}

上面的语句首先将值赋给布尔变量,然后完成条件检查。声明中没有错误。

if(someBoolean == false){}

此声明仅进行条件检查。