等级&&和||

时间:2013-04-09 12:30:39

标签: if-statement

假设我有这个代码(bool1,bool2和bool3都是布尔值[应该很明显]):

if (bool1 && bool2 || bool3)

if-Statement是什么时候真的?那么如果只有bool3是真的而其他两个布尔都是假的呢。所以我想知道它是否等于

if ((bool1 && bool2) || bool3)

if (bool1 && (bool2 || bool3))

我知道我可以简单地在那里添加一些括号,但如果没有,我的代码会更短。

1 个答案:

答案 0 :(得分:2)

您需要检查运营商的语言优先级表。对于C ++,它是:

http://en.cppreference.com/w/cpp/language/operator_precedence

13  &&   Logical AND
14  ||   Logical OR

bool1 && bool2 || bool3(bool1 && bool2) || bool3

关于评估布尔表达式并不是if-statement