我只想澄清我对如何在表达式中应用布尔优先顺序的理解。我将使用以下优先顺序给出一个示例:
1) NOT
2) AND
3) OR
鉴于表达式A NOT B AND C
,我知道将首先评估NOT
。但是,这会应用于表达式(B AND C)
的其余部分,还是仅应用于下一个标记B
?
我目前的理解是它是前者所以应该将其评估为A NOT (B AND C)
。这是对的吗?
由于
答案 0 :(得分:3)
布尔运算符没有普遍认可的优先顺序,因此它将取决于执行解析的人员或内容。对于任何给定的计算机语言,应在语言文档中明确定义。另请注意,NOT
是一元运算符(具有从右到左的关联性),因此上面的示例实际上不是有效的布尔表达式。
可以说,由于布尔运算符在普通算术中具有类似性,因此我们应该使用类似的优先顺序。在这种情况下,NOT
(类似于一元否定)将具有最高优先级,然后AND
(乘法),然后OR
(加法)。