C语言while循环无法跳出问题

2025-04-03 04:29:52
推荐回答(2个)
回答1:

while(1){}是死循环,同理while(1);也是死循环
这样可能会比较好理解,for(i=0;i<10;i
){}
循环了10次;for(i=0;i<10;i
);一样循环的了10次,只是后面这个没有执行语句,
while(!ri)
ri取反为真的时候执行,即ri为0的时候执行
这个也是死循环,如果你要跳出循环的话
for(;;)
{
……
……
while(1)
{
.....
if(...)break;
//这里当条件满足后,跳出whil循环,执行test这里的程序
.....
}
test.....
if(...)break;
//同理,这里当条件满足后,跳出for循环,结束死循环,执行for外面的程序
}
这样说是否能理解?

回答2:

除非断电,否则单片机都要执行语句。按照你的程序,当j
=
0后,单片机在执行哪条语句?答案是从头来过。所以程序就不可能停止。现在目的是要它停止,但是不能断电,那单片机就得执行语句,给一条不断执行的空语句就OK。在P1=0x00;后加上while(1);,这是一个死循环,单片机就一直停留在while(1);。
注意要加上分号!
试试看