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

What happens if modulus is used in an 'if' statement?

本文关键字:什么 if 语句 如果      更新时间:2023-10-16

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

if (input%2)
    more code here

我知道模数返回余数值,在这种情况下,输入后的余数除以2。但是在这种情况下,是什么决定了代码是否通过if语句运行呢?

在布尔型上下文中,表达式的结果为零被解释为假值,任何非零的结果被解释为真值。

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

#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