0

根据wiki,AND的优先级高于OR。

我想知道,如果我有一个子句声明为|| b&&c

首先应该如何计算?(a||b) or (b && c)?

4

5 回答 5

3

由于优先级,它评估为

(a || ( b && c))

如果您(手动)添加括号,括号会在其他任何内容之前进行评估并更改所有内容。

如果你写

   ((a || b) && c)

这很重要!

于 2013-08-08T03:36:55.500 回答
2

您应该在测试脚本中尝试一下,但是如果 wiki 说 AND 具有更高的优先级,那么我会假设b&&c首先调用它。

于 2013-08-08T03:22:37.457 回答
2

ANDOR在 JAVA 中具有更高的优先级。所以(b && c)应该(a||b)在表达式之前计算a || b && c

检查此以获取完整列表:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

截图取自链接:

在此处输入图像描述

于 2013-08-08T03:24:19.817 回答
1

因为 AND 具有更高的优先级,所以 (b && c) 将首先被评估,然后其结果将与 a 进行或运算。换句话说,这等价于 || (b && c)

于 2013-08-08T03:28:43.723 回答
0

这有一个非常直接的答案,它首先评估 b&&c 仅仅是因为AND操作在顺序上比OR操作具有更高的优先级。

让我用一个更广为人知的关于优先级的例子来解释,

我们取 5+2*2

我们都知道 2*2 是第一个求值的,然后 5 将被添加到 4(2*2) 中。同样,逻辑中也有评估顺序,这是您必须遵循的标准。:)

于 2013-08-08T06:03:45.700 回答