为什么提到的代码块中的条件成功为真?

时间:2014-10-31 06:52:20

标签: java

下面是一个Java代码,应该评估为false,因为 b = false 评估为' false '和b被赋值 false OR 条件的第二部分是 b == true ,这也是错误的 b false 。但是,当我在 Dr中测试运行此代码时。 Java编辑器我的输出为 检查为真

boolean b=true; 
if(b=false || b==true)
 System.out.println("check true");

2 个答案:

答案 0 :(得分:4)

表达式(b = false || b == true)的评估方式与(b = false) || (b == true)不同, 但是像b = (false || (b == true))一样,如果b为真,则为真。

关键点是运算符优先级,请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

答案 1 :(得分:1)

下面

boolean b=true;
if(b=false || b==true)

现在这相当于

 if(b= b == true)

我们可以将其简化为

if(b=b)

现在b=btrue