带有布尔条件的{else}语句中的代码

时间:2017-08-02 19:56:01

标签: java boolean

我在下面的代码中写了这个。由于我将布尔值赋值为false,然后再将b语句中的if变量赋值为false,因此条件为真,输出应为“hello”。但是,输出结果为“hi”。有人可以赐教我吗?

boolean b= false;

if (b=false){
    System.out.println("hello");        
}
else {  
    System.out.println("hi");
}

3 个答案:

答案 0 :(得分:1)

尝试(b == false)(!b)

当您执行b=false时,您正在检查赋值运算符,您希望使用==来检查相等性

答案 1 :(得分:1)

你的问题出在你的

b=false 

=是一个赋值运算符。您需要的是==,它将进行比较。

如果想检查布尔值是否为假,您也可以使用等同于!b的{​​{1}}。

答案 2 :(得分:-2)

执行以下行时:

if(b=false)

false赋给b,然后使用b的值来评估将成为

的if条件
if(false) 

因此程序的控制将转到else块。

您可以这样做:

if( !(b=false) ) { 
    System.out.println("hello"); 
} 
else { 
    System.out.println("hi"); 
}