我有一个简单的逻辑。
int i = 0;
if (i < 0) {
//whatever;
}
当我使用 VS 进行调试时,我看到i
设置为 0 但 if 评估为假!怎么会这样?
伙计们。也许我可以用更好的措辞来表达!!!当 i 为 0 时,上面的表达式应该评估为假,当我在 VS 中将鼠标悬停在它上面时会看到它,但它会进入括号并执行“无论如何”......这是不正确的。
编辑:请参阅我的类似名称但更新的问题以获得解决方案。
我有一个简单的逻辑。
int i = 0;
if (i < 0) {
//whatever;
}
当我使用 VS 进行调试时,我看到i
设置为 0 但 if 评估为假!怎么会这样?
伙计们。也许我可以用更好的措辞来表达!!!当 i 为 0 时,上面的表达式应该评估为假,当我在 VS 中将鼠标悬停在它上面时会看到它,但它会进入括号并执行“无论如何”......这是不正确的。
编辑:请参阅我的类似名称但更新的问题以获得解决方案。
0 不小于 0。它等于。做if (i <= 0)
那是因为 0 < 0 是错误的。
如果i
等于0,那么它是假的,因为它不小于0。
您正在考虑的是if(i == 0)
或if (i <= 0)
(或就此而言if(i >= 0)
)。i
如果equals ,这些中的每一个都是正确的0
。
因为 i 不小于零。因此,表达式的计算结果为假,这是正确的。
0 不小于 0。它小于或等于 0
它评估为假,因为 0 不小于 0。
0 < 0
永远都是false
。您希望它在什么条件下评估true
?
答案是因为 i 不小于 0。
为了使 if 语句评估为真,我需要是一个负整数。
0 < 0
是假的。<=
如果您希望它评估为真,i
则使用0
也许您的简单逻辑需要是:
int i = 0;
if(i <= 0) {Whatever }