使用if条件进行隐式bool评估

时间:2013-10-16 16:43:20

标签: c++ c

我有一个名为“count”的整数,当满足某个条件时会递增。所以我想问一下,如果你写下这个条件会发生什么:

if(count % 2)
{
    return even_bit; 
}
else
{
    return odd_bit;
}

问题基本上是当你没有在整数数据类型变量的表达式中明确定义时,上面的if条件是否检查条件计数%2 = 0或计数%2!= 0。

2 个答案:

答案 0 :(得分:3)

如果表达式的计算结果为0,则将其解释为FALSE - 对于任何非零值,它将被解释为TRUE。换句话说,

if(count % 2)

相当于

if(count % 2 != 0)

所以你的代码是“倒退”的。如果该陈述为真,count是奇数,你很可能想要返回odd_bit(这里只是猜测。)。

答案 1 :(得分:0)

if(count % 2)  

相当于

if(count % 2 != 0)  

现在它将全部依赖于count它是偶数还是奇数。如果是偶数,count%2FALSE(返回odd_bit),如果count为奇数,则count%2TRUE(返回{{1} }})。