boolean a = true;
    boolean b = true;
    boolean c = false;

    System.out.println(a || b && c); // true
    System.out.println(b && c || a); // true


我最近才发现我认为这里有些奇怪。为什么&&||处于不同的优先级?我会以为他们处于同一水平。以上证明了这一点。即使从左到右的求值对第一个给出的都是假,而第二个则给出的是真,这两个陈述都是正确的。

有人知道这背后的原因吗?

(顺便说一句,我只是在这里使用了很多括号,但是是旧代码提出了这个问题)

最佳答案

因为在传统的数学符号中,andlogical conjunction)的优先级高于orlogical disjunction)。

出于显而易见的原因,所有非深奥的编程语言都将反映这种事情的现有约定。

关于java - 为什么&&的优先级高于|| (Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58438405/

10-13 02:32