&安培;&安培; ||操作员互动

时间:2012-11-29 21:32:33

标签: c++ logical-operators operator-precedence

我需要知道如何在语句中评估逻辑AND和OR运算符。我找到了一些试图解释它的网站,但我无法做出它们的头脑或尾巴。我知道我可以用大括号来订购它我想要的但是我想了解它是如何工作的。

例如

if( b1 && b2 || b3 )

评估为:

(b1 && b2) || b3 

或作为:

b1 && (b2 || b3)

2 个答案:

答案 0 :(得分:9)

您可以在任何operator precedence table中找到&&的优先级高于||,这意味着它被评估为

(b1 && b2) || b3 

请注意,&&||都是短路的,这意味着不必评估b2b3。例如,如果b1评估为false,则根本不会评估b2。此外,如果b1 && b2评估为true,则不会评估b3

答案 1 :(得分:0)

在这方面,

&&||就像*+一样工作。