根据wiki,AND的优先级高于OR。
我想知道,如果我有一个子句声明为|| b&&c
首先应该如何计算?(a||b) or (b && c)?
由于优先级,它评估为
(a || ( b && c))
如果您(手动)添加括号,括号会在其他任何内容之前进行评估并更改所有内容。
如果你写
((a || b) && c)
这很重要!
您应该在测试脚本中尝试一下,但是如果 wiki 说 AND 具有更高的优先级,那么我会假设b&&c
首先调用它。
AND
OR
在 JAVA 中具有更高的优先级。所以(b && c)
应该(a||b)
在表达式之前计算a || b && c
检查此以获取完整列表:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
截图取自链接:
因为 AND 具有更高的优先级,所以 (b && c) 将首先被评估,然后其结果将与 a 进行或运算。换句话说,这等价于 || (b && c)
这有一个非常直接的答案,它首先评估 b&&c 仅仅是因为AND操作在顺序上比OR操作具有更高的优先级。
让我用一个更广为人知的关于优先级的例子来解释,
我们取 5+2*2
我们都知道 2*2 是第一个求值的,然后 5 将被添加到 4(2*2) 中。同样,逻辑中也有评估顺序,这是您必须遵循的标准。:)