我的任务是列出布尔运算符的优先级顺序,并评估以下表达式:
true || true && false
true && true || false
但是,我对这意味着什么以及如何执行感到困惑。有人可以澄清这个任务的要求吗?
答案 0 :(得分:3)
答案 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的答案中检查图表,则实际上&&
的优先级比||
高,因此首先应用此操作。这正是我们在这里看到的。