在c语言的世界里除了0是false,其他的都是ture。
while(1){ } 语句判断条件是死循环是没错,但也并非一定是死循环,也有可能运行到某个时刻就跳出while循环了。
比如 while(1)里面运行到了break,或者return,那么就会终止当前的while语句,结束循环。上面说的中断,只是一时跳出while语句,执行其他语句,执行完以后仍然会返回while(1)继续循环。
扩展资料:
语法
Pascal
while <条件> do <语句>
意为当条件符合时,接着做下面的语句;不符合时,退出循环。
C语言
do <语句> while(<条件>);
while(<条件>) <语句>;
C++
while(<条件>) <语句>;
do <语句> while(<条件>);
Java
while(<条件>) {<语句;>}
do {<语句;>} while(<条件>);
二者的区别是do-while最少会被执行一次。
循环中可以使用continue结束当前循环,回到循环开始处开始下一次循环。也可以用break跳出整个循环。
参考资料来源:百度百科-while (循环语句及英文单词)
这个原因是这样的:
当你输入非法时,你的输入将留在输入缓冲区中。这样下一次循环,因为输入缓冲区中仍然有数据,就会再次做判断,判断非法继续留在输入缓冲区中,如此反复。。。。
解决方法也很简单,加一句fflush(stdin)即可。
#include
int main(void)
{
int b,a;
a=b=0;
while(a != 11)
{
b=(scanf("%d",&a));
if(b == 1)
printf ("%d\n",b);
else
{
printf ("++++%d\n",b);
fflush(stdin);
}
}
return 0;
}