如果Java if语句具有赋值和相等性检查OR-d,它们如何工作?

dha*_*shi 8 java

为什么带有赋值和等式检查的if语句的计算结果为false?

public static void test() {

    boolean test1 = true; 
    if (test1 = false || test1 == false) {
        System.out.println("Yes");
    } else {
        System.out.println("No");
    }       
}
Run Code Online (Sandbox Code Playgroud)

为什么要打印No

Axe*_*xel 14

由于运算符优先级.它相当于:

boolean test1 = true; 
if (test1 = (false || test1 == false)) {
...
}
Run Code Online (Sandbox Code Playgroud)

括号中的部分评估为false.