在编程中遇到while(-1)的情况,当时以为循环为false,经查资料发现:“一般而言,所有非零值都视为真,只有0被视为假。”
#include<stdio.h>
int main(void)
{
int n = 3;
while(n)
printf("%2d is true\n",n--);
printf("%2d is false\n",n);
n = -3;
while(n)
printf("%2d is true\n",n++);
printf("%2d is false\n",n);
return 0;
}
执行结果:
3 is ture
2 is ture
1 is ture
0 is false
-3 is ture
-2 is ture
-1 is ture
0 is false