使用if条件的隐式bool评估

28 浏览
0 Comments

使用if条件的隐式bool评估

这个问题已经有了答案

在C中使用布尔值

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

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

这个问题基本上在问如果你没有在整数数据类型变量表达式中明确定义它,那么上面的if条件是否检查count%2 = 0还是count%2!= 0条件。

admin 更改状态以发布 2023年5月23日
0
0 Comments

if(count % 2)  

等价于

if(count % 2 != 0)  

现在一切取决于count的奇偶性。在偶数的情况下,count%2FALSE(返回odd_bit),如果count是奇数,则count%2TRUE(返回even_bit)。

0
0 Comments

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

if(count % 2)

等同于

if(count % 2 != 0)

所以你的代码是“反过来的”。如果语句为真,count是奇数,你很可能想返回odd_bit(只是猜测)。

0