所以在c ++中,1相当于true
int test = 1;
if(test) {// returns true; enter if loop
passgo();
collect200dollars();
}
翻转操作员(抱歉缺少更好的名字)是否适用于此?
int test = 1;
if(!test) {// returns false; do not enter if loop
...
}else{
goToJail();
}
答案 0 :(得分:2)
不仅一个而且所有非零值都等于true。在你写作时
if(test)
这意味着,编译器会检查test的值是否等于0。如果test的值等于0,则if表达式返回false,否则返回true。
答案 1 :(得分:1)
是的,你也可以检查它是否为假...它会否定测试,这是真的,因为它不是零。在将int转换为bool时,如果该值不为零,则将其视为true,否则为false。在你的情况下,你指定test = 1表示为true,而你否定真值意味着条件将直接执行其他代码..
答案 2 :(得分:1)
任何与零不同的基本数字类型(int
,double
,float
等)都会在条件中转换为bool
等于true
。因此,!
运算符会否定bool
true
,false
,后者将变为{{1}}。