-7

我有一个简单的逻辑。

int i = 0;
if (i < 0) { 
  //whatever; 
}

当我使用 VS 进行调试时,我看到i设置为 0 但 if 评估为假!怎么会这样?

伙计们。也许我可以用更好的措辞来表达!!!当 i 为 0 时,上面的表达式应该评估为假,当我在 VS 中将鼠标悬停在它上面时会看到它,但它会进入括号并执行“无论如何”......这是不正确的。

编辑:请参阅我的类似名称但更新的问题以获得解决方案。

4

10 回答 10

9

0 不小于 0。它等于。做if (i <= 0)

于 2011-06-17T17:11:35.763 回答
5

那是因为 0 < 0 是错误的。

于 2011-06-17T17:11:42.933 回答
2

如果i等于0,那么它是假的,因为它不小于0。

您正在考虑的是if(i == 0)if (i <= 0)(或就此而言if(i >= 0))。i如果equals ,这些中的每一个都是正确的0

于 2011-06-17T17:11:35.483 回答
2

因为 i 不小于零。因此,表达式的计算结果为假,这是正确的。

于 2011-06-17T17:11:49.093 回答
2

0 不小于 0。它小于或等于 0

于 2011-06-17T17:11:49.470 回答
2

它评估为假,因为 0 不小于 0。

于 2011-06-17T17:12:20.040 回答
2

0 < 0永远都是false。您希望它在什么条件下评估true

于 2011-06-17T17:12:28.293 回答
2

答案是因为 i 不小于 0。

为了使 if 语句评估为真,我需要是一个负整数。

于 2011-06-17T17:12:45.803 回答
1

0 < 0是假的。<=如果您希望它评估为真,i则使用0

于 2011-06-17T17:12:32.580 回答
1

也许您的简单逻辑需要是:

int i = 0;
if(i <= 0) {Whatever } 
于 2011-06-17T17:12:56.077 回答