允西还有联系吗:[c]什么是死循环?

来源:百度文库 编辑:高校问答 时间:2024/04/28 13:42:52
这个程序
x=3;
do
{ y=x--;
if(!y){printf("x");continue;}
printf("#");
}while(1<=x<=2);

这个程序为什么是死循环?还有什么是死循环阿?

呵呵 老兄是初学者吧 容易把数学上的符号和程序命令混起来
1<=x<=2在C里和数学上的意义是不一样的 由于优先级会从左到右做 1<=x的逻辑值为0或1, 是永远比2小的, 所以1<=x<=2的值为1 相当于while(1)

死循环是循环条件永远能够得到满足,循环永远进行下去。

条件1<=x<=2永远都是满足的,无法结束循环。

因为1<=x的结果不是0就是1,因此它<=2永远满足

应该改为
while( 1<=x && x<= 2 )
意思是1<=x且x<=2

while(1)
{语句};
这种循环一旦进去就再也出不来了,所以要设置跳出条件

所谓死循环就是在循环语句中,循环条件不可能满足的情况,你这个程序的死循环在于while语句中的条件项无法得到满足,已改为1<=x<2,或1<x<=2就能出循环了。

死循环就是一直循环,没有结束