假设我有这段代码(bool1、bool2 和 bool3 是布尔值[应该很明显)):
if (bool1 && bool2 || bool3)
这个 if 语句何时为真?那么如果只有 bool3 为真而其他两个布尔值为假怎么办。所以我想知道它是否等于
if ((bool1 && bool2) || bool3)
或者
if (bool1 && (bool2 || bool3))
我知道我可以简单地在其中放一些括号,但如果不是,我的代码会更短。
假设我有这段代码(bool1、bool2 和 bool3 是布尔值[应该很明显)):
if (bool1 && bool2 || bool3)
这个 if 语句何时为真?那么如果只有 bool3 为真而其他两个布尔值为假怎么办。所以我想知道它是否等于
if ((bool1 && bool2) || bool3)
或者
if (bool1 && (bool2 || bool3))
我知道我可以简单地在其中放一些括号,但如果不是,我的代码会更短。
您需要检查您的语言的运算符优先级表。对于 C++,它是:
http://en.cppreference.com/w/cpp/language/operator_precedence
13 && Logical AND
14 || Logical OR
bool1 && bool2 || bool3
是(bool1 && bool2) || bool3
这if-statement
与评估布尔表达式无关。