C语言超急问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:17:53
请问以下的一段程序为什么是死循环啊?
x=3;
do
{y=x--;
if(!y){printf("x");continue;}
printf("#");
}while(x<=1&&x>=2);
请详细说明
为什么结束啊

不死循环
输出#后结束

x<=1&&x>=2 不可能的
第一次运行到条件这里就出来了

begin
x=3;
y=x=2;
(因为y!=1)print 2;
y=x=1;
print #;
(x<=1)y=x=0;
(y!=1)print 0;
y=x=-1;
(y!=1)print -1;
....
y=x--;
print x;
....