就原始布尔值而言,
之间有什么区别if(someBoolean == false){}
和
if(someBoolean = false){}
我写了后者(在Eclipse中)期望抛出错误但没有错误。
答案 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){}
此声明仅进行条件检查。