C循环时的多个条件

时间:2016-11-25 03:42:38

标签: c loops while-loop conditional-statements

不确定我是否只是非常疲倦/神志不清并且没有看到我在这里做错了什么。

i = 7
decTemp = -62
while((i >= 0) && (abs(decTemp >= 1))){
    /* do stuff */
    i--;
}

这个while循环被完全跳过,我已经检查了,似乎条件不满足,因为我大于0且decTemp的绝对值大于1,所以这是奇怪的。请帮助:((

1 个答案:

答案 0 :(得分:2)

您可能想说abs(decTemp) >= 1,而不是abs(decTemp >= 1)

由于-62 >= 1为假(0),abs(0)也是0。因此while循环条件始终为false。

专业提示:始终将常量放在左侧。

while ((0 <= i) && (1 <= abs(decTemp))) {
    i--;
}