【发布时间】:2019-07-21 14:00:10
【问题描述】:
我正在尝试比较 IF 语句中的两个 int 变量。在某些情况下它工作得很好,但在某些情况下会有非常奇怪的行为,至少对我来说是这样。基本上我想在两个变量不相等时返回 true。
在伪代码中:
if (!someMethodToRetrieveInt() == someStructure.intVariable)
return true;
return false;
在调试时我正在检查局部变量,我确定方法返回的变量和结构成员不相等,但代码仍然返回 false。
这两个是一样的吗?
if (!someMethodToRetrieveInt() == someStructure.intVariable)
return true;
return false;
if (someMethodToRetrieveInt() != someStructure.intVariable)
return true;
return false;
【问题讨论】:
-
你能展示一下
someMethodToRetrieveInt()这个方法的样子吗? -
!someMethodToRetrieveInt()将导致0或1。1当someMethodToRetrieveInt()返回0时,0在所有其他时间。然后它将0(或1)与someStructure.intVariable进行比较。因此,仅当intVariable被限制为0或1时它们才相同。它可能不是。
标签: c++ if-statement