&& || 操作员互动

Sae*_*ath -1 c++ operator-precedence logical-operators

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

例如会

if( b1 && b2 || b3 )
Run Code Online (Sandbox Code Playgroud)

被评估为:

(b1 && b2) || b3 
Run Code Online (Sandbox Code Playgroud)

或作为:

b1 && (b2 || b3)
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 9

您可以在任何具有更高优先级的运算符优先级表中找到,这意味着它被评估为&&||

(b1 && b2) || b3 
Run Code Online (Sandbox Code Playgroud)

不过,请注意,这两个&&||的短路,这意味着b2b3没有进行评估.例如,如果b1评估为false,b2则根本不进行评估.此外,如果b1 && b2评估true,b3将不会评估.