请问为什么这个循环是死循环

x=3;
do{ y=x--;
if(!y)
printf("x");continue;}
printf("#);
}
while(1<=x<=2);

这个循环当y=1 x=0时不就自动结束了吗(c语言小白在线求教呜呜呜呜)

while(1<=x=2)
相当于
while (1<=(x=2))
相当于
while (1<=2)
永远为真
所以是死循环