如果1 == true,你能翻转吗?

时间:2014-11-28 03:09:45

标签: c++

所以在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();
}

3 个答案:

答案 0 :(得分:2)

不仅一个而且所有非零值都等于true。在你写作时

if(test) 

这意味着,编译器会检查test的值是否等于0。如果test的值等于0,则if表达式返回false,否则返回true。

答案 1 :(得分:1)

是的,你也可以检查它是否为假...它会否定测试,这是真的,因为它不是零。在将int转换为bool时,如果该值不为零,则将其视为true,否则为false。在你的情况下,你指定test = 1表示为true,而你否定真值意味着条件将直接执行其他代码..

答案 2 :(得分:1)

任何与零不同的基本数字类型(intdoublefloat等)都会在条件中转换为bool等于true 。因此,!运算符会否定bool truefalse,后者将变为{{1}}。

见相关内容 https://stackoverflow.com/a/8591324/3093378