为什么这个if语句,连同赋值和相等检查,计算为false?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

Java如何IF语句在有任务分配和等式检查时工作?

public static void test() {
    boolean test1 = true; 
    if (test1 = false || test1 == false) {
        System.out.println("TRUE");
    } else {
        System.out.println("FALSE");
    }       
}
提问于
用户回答回答于

可以尝试下这个:

(test1=false) || (test1 == false)

在这种情况下,结果将是true,但是

test1 = (false || test1 == false)

用户回答回答于

基本上,这是一个优先问题。假设您的代码相当于:

if ((test1 = false) || (test1 == false))

但不是:

if (test1 = (false || test1 == false))

.这相当于:

if (test1 = (false || false))

.这相当于:

if (test1 = false)

分配值falsetest1,表达式的结果是false

扫码关注云+社区