所以我没有写下面的代码。我遇到了它,并对如何评估if条件感到好奇。
if(a==b || c || d || e)
我认为它只是检查a == b和其余代码是否毫无意义。我对吗? c,d,e有什么意义吗?另一个问题是,这个评价是什么?
if(a == (b || c || d || e))
我在C ++方面不是很有经验
答案 0 :(得分:3)
这不是没有意义的。它检查是否a==b
,如果它们不相等则检查c
是否为真,如果不是则检查d
是否为真,如果不是然后检查e
是否为真。总的来说,如果四个子表达式中的任何一个为真,则表达式为真。
答案 1 :(得分:0)
我不会说剩下的参数没有意义,因为如果(a!= b),将会评估其他参数。然而,据我所知,如果(a == b)被评估为真,则其余参数将不会被评估,因为这是不必要的。
请记住,这是“OR”或“||”的情况条件语句,如果只有一个参数为true,则返回true。因此,任何使用“OR”的条件语句,如果第一个参数为true,则将评估为true,而不必评估其余参数。