为什么我的while循环在count到零时终止?

时间:2017-11-19 03:53:47

标签: c

while如果在没有像count!=0

这样的条件的情况下变为0,那么#include<stdio.h> static int count=5; void func(void); void main() { while(count--) { func(); } } void func(void) { static int i=5; i++; printf("%d\t%d\n",i,count); } 如何终止?
index = int(form.hour.data)
form.hour.choices[index][1]

5 个答案:

答案 0 :(得分:4)

在C语言中0(零)被视为假。在任何条件语句中使用0时,它将评估为false。

Ex:if( 0 )评估为false,触发else代码(如果有)。

在代码中,当count--等于0时,while条件的计算结果为while (0)。由于while循环的迭代仅在条件求值为true时触发,因此while循环将在此时终止。

答案 1 :(得分:3)

while(condition)

此处循环继续,直到呈现为布尔值的条件为真。在C中,0表示 false 布尔值。

因此

while(count--)

在这种情况下,计数值在每次迭代中递减,当它变为零时,条件看起来像而(0),它会将循环打破为条件变得虚假。

答案 2 :(得分:1)

当while循环尝试计算其条件语句时,它会将值转换为boolean。非零的整数值被视为true,因此循环将继续,相反,零将转换为false并停止循环。

答案 3 :(得分:1)

while循环检查条件总是如此,当count变为零时,循环将具有错误条件。

答案 4 :(得分:0)

for循环在这里可能会更好用:

void main()
{
    for (int i=count; i > 0; --i)
    { 
        func();
    }
}

for循环适合您的用例的原因是它既维护计数器又能够检查终止条件。