如果在'if'语句中使用模数会发生什么?

时间:2016-10-20 00:05:51

标签: c++

我想知道如果我们以这种方式使用模数会发生什么:

if (input%2)
    more code here

我知道模数会返回余数值,在这种情况下,输入后的余数除以2.但在这种情况下,如果代码是否通过if语句运行,则确定的是什么?

2 个答案:

答案 0 :(得分:3)

在布尔上下文中,表达式为零的结果被解释为false值,而任何非零结果都被解释为true值。

因此,在这种情况下,如果模数运算符的结果不为0,则if表达式的计算结果为true

答案 1 :(得分:0)

#include <iostream>
#include <string>

int main(){

    if(3%2){
        printf("True");   
    }else{
        printf("False");
    }

    printf("\n");

    if(2%2){
        printf("True");   
    }else{
        printf("False");
    }
}

运行此打印:

True
False

正如@Sam描述的那样,7%2表达式的结果是1,因此条件语句打印True(或在if语句中做任何其他事情) 。

编辑:

除此之外,条件语句的任何非零值都允许您“进入”if语句:

if(13%5){
    printf("True");   
}else{
    printf("False");
}

打印:

True
相关问题