0

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

if (bool1 && bool2 || bool3)

这个 if 语句何时为真?那么如果只有 bool3 为真而其他两个布尔值为假怎么办。所以我想知道它是否等于

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

或者

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

我知道我可以简单地在其中放一些括号,但如果不是,我的代码会更短。

4

1 回答 1

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与评估布尔表达式无关。

于 2013-04-09T12:31:53.250 回答