列出Java

时间:2019-01-20 05:59:15

标签: java boolean operators

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

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

但是,我对这意味着什么以及如何执行感到困惑。有人可以澄清这个任务的要求吗?

2 个答案:

答案 0 :(得分:3)

要了解一个想法,请参见下表。它显示了所有Java运算符,从最高优先级到最低优先级,以及它们的关联性

enter image description here

here那里获取

因此您可以看到,两个结果均为true

答案 1 :(得分:1)

运算符优先级仅是应用操作的顺序。例如,考虑以下数学语句:

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);
     }
}

事实证明他们俩都是true

为了更多地了解这一点,您可以尝试使用括号来查看这如何改变语句的真实值。例如,

System.out.println((true || true) && false);

false。与

System.out.println(true || true && false);

true。这说明Java执行操作的顺序如何?好吧,我写括号的方式改变了结果,显然这是不对的。您可以据此推断Java必须以“另一种方式”做括号:

System.out.println(true || (true && false));

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