假设我有这个代码(bool1,bool2和bool3都是布尔值[应该很明显]):
if (bool1 && bool2 || bool3)
if-Statement是什么时候真的?那么如果只有bool3是真的而其他两个布尔都是假的呢。所以我想知道它是否等于
if ((bool1 && bool2) || bool3)
或
if (bool1 && (bool2 || bool3))
我知道我可以简单地在那里添加一些括号,但如果没有,我的代码会更短。
答案 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
。