当 Java if 语句同时具有赋值和相等性检查 OR
-d 时,它是如何工作的??
public static void test() {
boolean test1 = true;
if (test1 = false || test1 == false) {
System.out.println("TRUE");
} else {
System.out.println("FALSE");
}
}
为什么这个打印是 FALSE?
最佳答案
表达式未按照您的想法进行解析。这不是
(test1=false) || (test1 == false)
在这种情况下,结果应该是 true
,但是
test1 = (false || test1 == false)
false的值|| test1 == false
表达式首先计算,它是 false
,因为 test1
设置为 true
进入计算。
这样解析的原因是precedence ||
的优先级低于 ==
运算符,但高于赋值运算符 =
的优先级。
关于java - 为什么这个带有赋值和相等检查的 if 语句评估为假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29670421/