欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機C語言while(1)如何跳出死循環? [打印本頁]

作者: cheney03    時間: 2020-6-2 23:48
標題: 單片機C語言while(1)如何跳出死循環?
main()
{
        lcd_inita();//液晶初始化
        Delay(1, 5);//延時1.5s
        while(1)
        {        
        
               display_clo(255,0,0);//顯示紅色
                Delay(1 , 5);
                display_clo(0,255,0);//顯示綠色
                Delay(1 , 5);
                display_clo(0,0,255);//顯示藍色
                DelayKey(2 , 5);
                clear_all();//清屏
                display_str();//顯示字符串
               
        }
}
這是主函數,紅綠藍為測試顏色,最后要顯示字符串,如何跳出這個死循環?


作者: cheney03    時間: 2020-6-2 23:58
main()
{     
       int i=1;
       lcd_inita();//液晶初始化
        Delay(1, 5);//延時1.5s
        while(i)
        {        
        
               display_clo(255,0,0);//顯示紅色
                Delay(1 , 5);
                display_clo(0,255,0);//顯示綠色
                Delay(1 , 5);
                display_clo(0,0,255);//顯示藍色
                DelayKey(2 , 5);
                clear_all();//清屏
                display_str();//顯示字符串
               --i;
               if(i==0)
                break;
        }
}
這樣修改后還是死循環,無法跳出。
作者: Wprogrammer    時間: 2020-6-3 07:03
為什么要跳出   你如果 只要執行一次 就不用while   找到一個合適的跳出條件可以用break
作者: HNZ666    時間: 2020-6-3 08:40
用do while
作者: 烈火    時間: 2020-6-3 08:51
使用baerk可以跳出
作者: f556    時間: 2020-6-3 09:02
刪除while(1)就行
作者: 怕怕怕wd    時間: 2020-6-3 09:09
if  ..(字符串)...break(中斷)很好用,樓主可以百度一下if  break用法
作者: aking991    時間: 2020-6-3 09:11
main()
{
        lcd_inita();//液晶初始化
        Delay(1, 5);//延時1.5s
        display_clo(255,0,0);//顯示紅色
        Delay(1 , 5);
        display_clo(0,255,0);//顯示綠色
        Delay(1 , 5);
        display_clo(0,0,255);//顯示藍色
        DelayKey(2 , 5);
        clear_all();//清屏
        display_str();//顯示字符串
        while(1);
}

main()
{
        uchar flag1=1;        

        lcd_inita();//液晶初始化
        Delay(1, 5);//延時1.5s
        while(1)
        {        
                if(flag1 == 1)
                {        
                        flag1 = 0;
                               display_clo(255,0,0);//顯示紅色
                        Delay(1 , 5);
                        display_clo(0,255,0);//顯示綠色
                        Delay(1 , 5);
                        display_clo(0,0,255);//顯示藍色
                        DelayKey(2 , 5);
                        clear_all();//清屏
                        display_str();//顯示字符串
               }
        }
}
以上兩種都是只執行一次的方法,僅供參考
作者: benclee    時間: 2020-6-3 09:12
break;可以跳出循環,如果上面死循環不想再進入就是,下面添加一個while(1)
另一種方式,上面不要while(1),在末尾加上while(1),
作者: 適得府君書    時間: 2020-6-3 09:13
其實這個不應該叫死循環。應該是主循環。你如果跳出了這個循環,那么你的程序就結束了。
跳出循環一般是使用C語言關鍵字break;
最好就是通過某個條件來控制什么時候跳出這個循環。
比如循環次數。大于多少次就跳出循環。
void main()
{
   unsigned char i=0;
   while(1)
  {
     i++;
    if(i>10)
    {
      break;
     }
  }
}
如果在有返回值的函數中還可以用return關鍵字來跳出循環;
如:
int  getdata()
{
     int n=0;
    while(1)
    {
      ........
      return n;
    }
}
還有其他一些比較少用的方法可以跳出循環。
作者: xxpp2011    時間: 2020-6-3 10:20
把括號里的1改成跳出的條件,當條件==0時跳出循環。
作者: benclee    時間: 2020-6-3 11:04
cheney03 發表于 2020-6-2 23:58
main()
{     
       int i=1;

你這樣是沒用的。main函數本身就是一個循環函數,會不停的執行。你這樣的跳出后,會在進入。如果不想再進入了。在后面再加一條while(1),使程序進入另一個循環出不來就行。
作者: zgh1234    時間: 2020-6-3 14:39
執行break();函數可以跳出循環
作者: cheney03    時間: 2020-6-3 17:07
f556 發表于 2020-6-3 09:02
刪除while(1)就行

是的,只要執行一次,刪除while循環就可以了。
作者: cheney03    時間: 2020-6-3 17:13
aking991 發表于 2020-6-3 09:11
main()
{
        lcd_inita();//液晶初始化

謝謝,方法可行
作者: jdong    時間: 2020-6-8 16:26
陷入死循環主要是While里的判斷語句時是真,所以一直都在做循壞,1改為==0
作者: 木偶zlh    時間: 2020-6-8 17:13
goto  break
作者: 橘貓持明    時間: 2020-6-8 17:35
跳出循環一般是使用C語言關鍵字break;
作者: 小明明。    時間: 2020-6-8 17:43
cheney03 發表于 2020-6-2 23:58
main()
{     
       int i=1;

用 do while()ya

作者: l834746645    時間: 2020-6-8 21:00
要么使用beak,要么對判斷條件進行修改
作者: 桃子君    時間: 2020-6-9 08:18
哈哈,break直接結束循環或者return直接結束main函數
作者: llh558382727960    時間: 2020-6-9 12:26
不想死循環可以不用while(1)吧
作者: 苣茜    時間: 2020-6-9 13:55
內部加一個break就可以了,如果需要條件可以用在條件語句中在break
作者: 苣茜    時間: 2020-6-9 13:57
內部用break就可以,如果需要條件可以把braek嵌套在條件內
作者: 3208    時間: 2020-6-9 15:29
cheney03 發表于 2020-6-2 23:58
main()
{     
       int i=1;

你還--i做什么,把if刪掉




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1