关于条件和|| C ++中的运算符

时间:2013-11-28 22:11:42

标签: c++

所以我没有写下面的代码。我遇到了它,并对如何评估if条件感到好奇。

if(a==b || c || d || e)

我认为它只是检查a == b和其余代码是否毫无意义。我对吗? c,d,e有什么意义吗?另一个问题是,这个评价是什么?

if(a == (b || c || d || e))

我在C ++方面不是很有经验

2 个答案:

答案 0 :(得分:3)

这不是没有意义的。它检查是否a==b,如果它们不相等则检查c是否为真,如果不是则检查d是否为真,如果不是然后检查e是否为真。总的来说,如果四个子表达式中的任何一个为真,则表达式为真。

答案 1 :(得分:0)

我不会说剩下的参数没有意义,因为如果(a!= b),将会评估其他参数。然而,据我所知,如果(a == b)被评估为真,则其余参数将不会被评估,因为这是不必要的。

请记住,这是“OR”或“||”的情况条件语句,如果只有一个参数为true,则返回true。因此,任何使用“OR”的条件语句,如果第一个参数为true,则将评估为true,而不必评估其余参数。