2017-08-02 42 views
-8

我已经在下面的代码中写了下面的代码。因为我将布尔值赋值为false,然后在if语句中将b变量赋值为false,因此条件为true,并且输出应为“hello”。但是,输出将是“嗨”。任何人都可以请赐教吗?带有布尔条件的if语句中的代码

boolean b= false; 

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

在'if(b = false)','='是赋值运算符 – khelwood

+0

欢迎使用StackOverflow。请在发布任何内容前阅读[如何提问](https://stackoverflow.com/help/how-to-ask)部分。 –

回答

0

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

当你b=false,你在执行以下行要使用==检查平等

-2

要检查对赋值操作符:

if(b=false) 

false被分配给b,然后b的值被用来评估if con这将成为

if(false) 

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

你可以做这样的事情:

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

你的问题是在你

b=false 

=是赋值运算符。你需要的是==哪个比较。

如果要检查布尔值是否为false,则还可以使用!b,这相当于b== false