久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5581|回復: 32
收起左側

這個C語言程序怎么跳出這個WHILE循環?

  [復制鏈接]
回帖獎勵 100 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
ID:621862 發表于 2020-9-4 16:03 | 顯示全部樓層 |閱讀模式
        printf("AT+CGATT?\r\n")
                        delay_ms(700);
        strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1");//·μ1
        Clear_Buffer();        
                while(strx==NULL)
                {
            Clear_Buffer();        
            printf("AT+CGATT?\r\n");/
            delay_ms(700);
            strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1“)
                                delay_ms(1000);
                }


怎么跳出這個while循環  模塊不返回正確數據他就一直卡在這了

回復

使用道具 舉報

ID:816763 發表于 2020-9-4 17:56 | 顯示全部樓層
要跳出這個while循環  必須要匹配到數據
回復

使用道具 舉報

ID:466505 發表于 2020-9-4 18:33 | 顯示全部樓層
加個超時唄,循環N次后就跳出;
回復

使用道具 舉報

ID:627214 發表于 2020-9-4 20:55 | 顯示全部樓層
用break跳出循環
回復

使用道具 舉報

ID:511890 發表于 2020-9-4 21:50 | 顯示全部樓層
當RxBuffer字符串中能夠找到 +CGATT: 1 的時候,才能跳出循環。
感覺Clear_Buffer();  的位置有點問題。
如果Clear_Buffer(); 是清空RxBuffer的話,那么應該把Clear_Buffer(); 放到delay_ms(1000);之后。
這個應該是一個文件或者文件名查找之類的程序的一部分。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:235954 發表于 2020-9-5 09:19 | 顯示全部樓層
strx==NULL收到空格,接受數據完畢就退出while循環
回復

使用道具 舉報

ID:478514 發表于 2020-9-5 14:00 | 顯示全部樓層
要跳出這個while循環  必須要匹配到數據
回復

使用道具 舉報

ID:419968 發表于 2020-9-6 22:42 | 顯示全部樓層
while((strx==NULL)&&(time != 0){time--;}
回復

使用道具 舉報

ID:750684 發表于 2020-9-7 08:15 | 顯示全部樓層

要跳出這個while循環  必須要匹配到數據
回復

使用道具 舉報

ID:816586 發表于 2020-9-7 08:41 | 顯示全部樓層
while循環  
回復

使用道具 舉報

ID:808634 發表于 2020-10-9 08:33 | 顯示全部樓層
break;
回復

使用道具 舉報

ID:367460 發表于 2020-10-9 10:22 | 顯示全部樓層
可以在死循環中加一個計數,如果計數滿之前還是沒有跳出while(strx==NULL),可以直接用 break; 跳出
回復

使用道具 舉報

ID:86450 發表于 2020-10-9 11:38 | 顯示全部樓層
goto 。。。。。。。。。。。。
回復

使用道具 舉報

ID:827294 發表于 2020-10-9 17:33 | 顯示全部樓層
用break打斷跳出循環
回復

使用道具 舉報

ID:827215 發表于 2020-10-9 18:27 | 顯示全部樓層
可以在函數內加一個變量,然后自加,自加到一定數時,由你決定是給出警告還是退出
回復

使用道具 舉報

ID:711539 發表于 2020-10-9 20:07 | 顯示全部樓層
可以設計超時/超循環次數跳出循環,使用break 語句
回復

使用道具 舉報

ID:626331 發表于 2020-10-9 20:38 | 顯示全部樓層
這就是你設計的有問題吧,你可以想,如果模塊不返回值,那你就到一個時間之后自己跳出來
回復

使用道具 舉報

ID:821802 發表于 2020-10-9 21:21 | 顯示全部樓層
unsigned int cnt;//程序最開始聲明一個計數的變量

printf("AT+CGATT?\r\n")
delay_ms(700);
strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1");
Clear_Buffer();  
cnt = 0;//在循環之前先把計數的變量清零
while(strx==NULL)
{
    Clear_Buffer();        
    printf("AT+CGATT?\r\n");/
    delay_ms(700);
    strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1“)
    delay_ms(1000);

    cnt++;//未返回或返回錯誤,變量都會在原有基礎上+1
    if(cnt > 10)//當變量的值大于指定的數,即可跳出循環,10可以改成其他的數字
    {
        break;
    }
}
回復

使用道具 舉報

ID:822056 發表于 2020-10-10 10:06 | 顯示全部樓層
可以嘗試下在循環中加個break;
回復

使用道具 舉報

ID:486279 發表于 2020-10-10 14:44 | 顯示全部樓層
strx!=null
回復

使用道具 舉報

ID:653456 發表于 2020-10-11 12:47 | 顯示全部樓層
加入一個超時跳出的標志位,若檢測不到數據就返回-1之類的標記。
回復

使用道具 舉報

ID:828289 發表于 2020-10-11 16:12 | 顯示全部樓層
可以加入一個變量來計數循環次數,次數超過給定值直接break跳出循環
回復

使用道具 舉報

ID:828383 發表于 2020-10-11 17:04 | 顯示全部樓層
你這個是你寫的算法有問題,模塊不返回正確數據肯定一直在while循環呀。你可以加一個跳出循環標志位。循環多少次后跳出循環噻。
回復

使用道具 舉報

ID:342954 發表于 2020-10-11 17:15 | 顯示全部樓層
用 break;
回復

使用道具 舉報

ID:568565 發表于 2020-10-11 17:27 | 顯示全部樓層
給個其他條件用break也能跳出
回復

使用道具 舉報

ID:731309 發表于 2020-10-11 18:12 | 顯示全部樓層
用break跳出,或者在里面用if else跳出即可
回復

使用道具 舉報

ID:828434 發表于 2020-10-11 19:22 | 顯示全部樓層

給個其他條件用break也能跳出
回復

使用道具 舉報

ID:473159 發表于 2020-10-11 20:08 | 顯示全部樓層
接收到了正確數據就跳出來,否則就跟你耗下去!你還是要看看你收到的數據有沒有正確解出來,可以試試發同一個數據是否能解開,后面再發不一樣的數據
回復

使用道具 舉報

ID:683360 發表于 2020-10-11 23:22 | 顯示全部樓層
你可以設置個條件  條件滿足退出循環
回復

使用道具 舉報

ID:829000 發表于 2020-10-12 21:21 | 顯示全部樓層
break;
回復

使用道具 舉報

ID:829292 發表于 2020-10-13 14:30 | 顯示全部樓層
你可以聲明一個變量num來記錄次數,運行一次while就+1,在寫個if語句,當這個變量超過你期望的值就是用break 跳出循環;在break之前輸出是這個邏輯跳出的。。
回復

使用道具 舉報

ID:825447 發表于 2020-10-21 09:11 | 顯示全部樓層
用for語句可以
eg for(n=0;n<10;n++)
     break ;
這樣也可以執行一段時間while語句

如果直接用break則會直接跳出while循環,那么你while也沒用了

當然你也可以在while里設置個參數
如while(n--)
{  n=50000  }
該語句也可執行一段時間

回復

使用道具 舉報

ID:832903 發表于 2020-10-21 21:28 | 顯示全部樓層
超時重來,或者可以goto label
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本电影免费完整观看 | 精品一区二区三区在线观看国产 | 911影院| 久久亚洲欧美日韩精品专区 | 亚洲国产精品区 | 国产免费人成xvideos视频 | 国产激情91久久精品导航 | 免费国产成人av | 欧美激情精品久久久久 | 久久69精品久久久久久久电影好 | 国产精品海角社区在线观看 | 在线色 | 日韩综合在线 | 成人在线不卡 | 天天爱天天操 | 9999精品视频 | 欧美精品1区2区 | 另类视频区 | 国产观看 | av网站在线看 | 亚洲精品免费视频 | 九九九视频在线观看 | 黄网站免费在线看 | 激情五月婷婷综合 | 国产免费一区二区三区 | 久草在线 | 国产美女视频一区 | 亚洲精品日本 | 国产一区二区激情视频 | 久久亚洲国产 | 成人片网址 | 啪啪网页 | 91 视频网站 | 亚洲欧美精品国产一级在线 | 亚洲精品中文字幕在线观看 | 人人玩人人干 | 国产欧美日韩一区 | 欧美视频网 | 欧美日韩专区 | 精精国产xxxx视频在线野外 | 视频二区 |