布尔表达式编译错误

2024-06-28

这是一段 Java 代码:

static boolean a; // gets false
static boolean b; 
static boolean c;

    public void printA(){

         boolean bool = (a = true) || (b = true) && (c = true);    
         System.out.print(a + ", " + b + ", " + c);     
    }

无法编译,请问是什么问题?错误:该行有多个标记; “bool”变量行上的语法错误。 我希望它能打印出来true, false, true。 虽然根据我的教程书它打印true, false, false.

我知道它会执行短路,但在 && 的情况下,双方都需要进行评估。那不是作业,我正在学习Java。 干杯


(a = true) || (b = true) && (c = true);

相当于:-

(a = true) || ((b = true) && (c = true));

Since (a = true)被评估为true,因此不会评估第二个表达式,因为您正在使用短路运算符 (||) there.

因此最后两个分配不会发生。和价值观b and c remain false.

Note: -短路运算符 -&& and ||,如果之前的评估能够得到某个结果,则不再进一步评估。

So: -

  • a && b不会评价b, if a是假的。

  • a || b不会评价b, if a是真的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

布尔表达式编译错误 的相关文章

随机推荐