我想知道如果我们以这种方式使用模数会发生什么:
if (input%2)
more code here
我知道模数会返回余数值,在这种情况下,输入后的余数除以2.但在这种情况下,如果代码是否通过if语句运行,则确定的是什么?
答案 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