列出java上布尔运算符的优先顺序

列出java上布尔运算符的优先顺序,java,boolean,operators,Java,Boolean,Operators,我的任务是列出布尔运算符的优先顺序,并计算以下表达式: true || true && false true && true || false 然而,我对这意味着什么以及如何做感到困惑。有人能澄清一下这项作业的要求吗?要想了解情况,请参见下表。它显示了从最高优先级到最低优先级的所有Java操作符,以及它们的关联性 从 因此,正如您可以从中看到的,这两个结果都是true运算符优先级只是应用操作的顺序。例如,考虑下面的数学陈述: 10 + 6 / 2 嗯,(10

我的任务是列出布尔运算符的优先顺序,并计算以下表达式:

true || true && false
true && true || false

然而,我对这意味着什么以及如何做感到困惑。有人能澄清一下这项作业的要求吗?

要想了解情况,请参见下表。它显示了从最高优先级到最低优先级的所有Java操作符,以及它们的关联性


因此,正如您可以从中看到的,这两个结果都是
true

运算符优先级只是应用操作的顺序。例如,考虑下面的数学陈述:

10 + 6 / 2
嗯,
(10+6)/2=16/2=8
,但是
10+(6/2)=10+3=13
,所以很明显,执行操作的顺序很重要。从数学上讲,这些答案中哪一个是正确的?如果你在考试中被问到这个问题,你应该写下哪个答案?运算符优先级告诉您

问题是要求您对布尔运算符执行类似的操作

请尝试以下程序:

public class HelloWorld {

     public static void main(String []args){
        System.out.println(true || true && false);

        System.out.println(true && true || false);
     }
}
事实证明,它们都是
真的

为了进一步了解这一点,您可以尝试使用括号,看看这会如何改变语句的真值。比如说,

System.out.println((true || true) && false);
false
。与之相比

System.out.println(true || true && false);
真的
。关于Java执行操作的顺序,这说明了什么?好吧,我写括号的方式改变了结果,显然这是不对的。您可以由此推断,Java必须以“另一种方式”处理括号:


如果您查看@Sand答案中的图表,
&&
的优先级实际上高于
|
,因此首先应用此操作。这正是我们在这里看到的。

这是真的,真的。你的问题是什么?@user7它在这里要求做什么?我不明白。这个布尔表达式是什么意思?这些问题的答案可以通过一点(再)搜索来找到&和| |在某种程度上是特殊的。它们应用一个操作,但其行为也类似于if-then-else。(a&&b)==((a==真)?b:假)(换句话说,只有当a为真时才考虑b)。类似地,(a | | b)==((a==假)?b:真)
System.out.println(true || (true && false));