&&和||的层次结构
问题描述:
比方说,我有这样的代码(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
它是关于评估布尔表达式。
了解如何创建逻辑真值表并将其映射出来,非常简单。 http://en.wikipedia.org/wiki/Truth_table – asawyer 2013-04-09 12:33:32