標(biāo)題:
這個(gè)C語(yǔ)言程序怎么跳出這個(gè)WHILE循環(huán)?
[打印本頁(yè)]
作者:
嗯哼11
時(shí)間:
2020-9-4 16:03
標(biāo)題:
這個(gè)C語(yǔ)言程序怎么跳出這個(gè)WHILE循環(huán)?
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);
}
怎么跳出這個(gè)while循環(huán) 模塊不返回正確數(shù)據(jù)他就一直卡在這了
作者:
li25
時(shí)間:
2020-9-4 17:56
要跳出這個(gè)while循環(huán) 必須要匹配到數(shù)據(jù)
作者:
hcfat51h
時(shí)間:
2020-9-4 18:33
加個(gè)超時(shí)唄,循環(huán)N次后就跳出;
作者:
無(wú)敵小杰杰
時(shí)間:
2020-9-4 20:55
用break跳出循環(huán)
作者:
幻劍心
時(shí)間:
2020-9-4 21:50
當(dāng)RxBuffer字符串中能夠找到 +CGATT: 1 的時(shí)候,才能跳出循環(huán)。
感覺(jué)Clear_Buffer(); 的位置有點(diǎn)問(wèn)題。
如果Clear_Buffer(); 是清空RxBuffer的話,那么應(yīng)該把Clear_Buffer(); 放到delay_ms(1000);之后。
這個(gè)應(yīng)該是一個(gè)文件或者文件名查找之類的程序的一部分。
作者:
梁廷明
時(shí)間:
2020-9-5 09:19
strx==NULL收到空格,接受數(shù)據(jù)完畢就退出while循環(huán)
作者:
3319702068
時(shí)間:
2020-9-5 14:00
要跳出這個(gè)while循環(huán) 必須要匹配到數(shù)據(jù)
作者:
adject
時(shí)間:
2020-9-6 22:42
while((strx==NULL)&&(time != 0){time--;}
作者:
跟愛(ài)的感覺(jué)走
時(shí)間:
2020-9-7 08:15
要跳出這個(gè)while循環(huán) 必須要匹配到數(shù)據(jù)
作者:
圖銳工程
時(shí)間:
2020-9-7 08:41
while循環(huán)
作者:
七禾頁(yè)
時(shí)間:
2020-10-9 08:33
break;
作者:
昆明路口賣提莫
時(shí)間:
2020-10-9 10:22
可以在死循環(huán)中加一個(gè)計(jì)數(shù),如果計(jì)數(shù)滿之前還是沒(méi)有跳出while(strx==NULL),可以直接用 break; 跳出
作者:
jjwangxu2008
時(shí)間:
2020-10-9 11:38
goto 。。。。。。。。。。。。
作者:
1293113817
時(shí)間:
2020-10-9 17:33
用break打斷跳出循環(huán)
作者:
atom1
時(shí)間:
2020-10-9 18:27
可以在函數(shù)內(nèi)加一個(gè)變量,然后自加,自加到一定數(shù)時(shí),由你決定是給出警告還是退出
作者:
菜鳥(niǎo)yc
時(shí)間:
2020-10-9 20:07
可以設(shè)計(jì)超時(shí)/超循環(huán)次數(shù)跳出循環(huán),使用break 語(yǔ)句
作者:
iLike.
時(shí)間:
2020-10-9 20:38
這就是你設(shè)計(jì)的有問(wèn)題吧,你可以想,如果模塊不返回值,那你就到一個(gè)時(shí)間之后自己跳出來(lái)
作者:
540060348
時(shí)間:
2020-10-9 21:21
unsigned int cnt;//程序最開(kāi)始聲明一個(gè)計(jì)數(shù)的變量
printf("AT+CGATT?\r\n")
delay_ms(700);
strx=strstr((const char*)RxBuffer,(const char*)"+CGATT: 1");
Clear_Buffer();
cnt = 0;//在循環(huán)之前先把計(jì)數(shù)的變量清零
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++;//未返回或返回錯(cuò)誤,變量都會(huì)在原有基礎(chǔ)上+1
if(cnt > 10)//當(dāng)變量的值大于指定的數(shù),即可跳出循環(huán),10可以改成其他的數(shù)字
{
break;
}
}
作者:
德斯佩爾
時(shí)間:
2020-10-10 10:06
可以嘗試下在循環(huán)中加個(gè)break;
作者:
趙杰趙杰
時(shí)間:
2020-10-10 14:44
strx!=null
作者:
pmp
時(shí)間:
2020-10-11 12:47
加入一個(gè)超時(shí)跳出的標(biāo)志位,若檢測(cè)不到數(shù)據(jù)就返回-1之類的標(biāo)記。
作者:
25041
時(shí)間:
2020-10-11 16:12
可以加入一個(gè)變量來(lái)計(jì)數(shù)循環(huán)次數(shù),次數(shù)超過(guò)給定值直接break跳出循環(huán)
作者:
北冥丶漁
時(shí)間:
2020-10-11 17:04
你這個(gè)是你寫(xiě)的算法有問(wèn)題,模塊不返回正確數(shù)據(jù)肯定一直在while循環(huán)呀。你可以加一個(gè)跳出循環(huán)標(biāo)志位。循環(huán)多少次后跳出循環(huán)噻。
作者:
hejianmin
時(shí)間:
2020-10-11 17:15
用 break;
作者:
chenyinhu
時(shí)間:
2020-10-11 17:27
給個(gè)其他條件用break也能跳出
作者:
黃河有只雞
時(shí)間:
2020-10-11 18:12
用break跳出,或者在里面用if else跳出即可
作者:
asd15455455
時(shí)間:
2020-10-11 19:22
給個(gè)其他條件用break也能跳出
作者:
yoxi
時(shí)間:
2020-10-11 20:08
接收到了正確數(shù)據(jù)就跳出來(lái),否則就跟你耗下去!你還是要看看你收到的數(shù)據(jù)有沒(méi)有正確解出來(lái),可以試試發(fā)同一個(gè)數(shù)據(jù)是否能解開(kāi),后面再發(fā)不一樣的數(shù)據(jù)
作者:
13317970316
時(shí)間:
2020-10-11 23:22
你可以設(shè)置個(gè)條件 條件滿足退出循環(huán)
作者:
花開(kāi)丿
時(shí)間:
2020-10-12 21:21
break;
作者:
nervouszx
時(shí)間:
2020-10-13 14:30
你可以聲明一個(gè)變量num來(lái)記錄次數(shù),運(yùn)行一次while就+1,在寫(xiě)個(gè)if語(yǔ)句,當(dāng)這個(gè)變量超過(guò)你期望的值就是用break 跳出循環(huán);在break之前輸出是這個(gè)邏輯跳出的。。
作者:
上進(jìn)求學(xué)
時(shí)間:
2020-10-21 09:11
用for語(yǔ)句可以
eg for(n=0;n<10;n++)
break ;
這樣也可以執(zhí)行一段時(shí)間while語(yǔ)句
如果直接用break則會(huì)直接跳出while循環(huán),那么你while也沒(méi)用了
當(dāng)然你也可以在while里設(shè)置個(gè)參數(shù)
如while(n--)
{ n=50000 }
該語(yǔ)句也可執(zhí)行一段時(shí)間
作者:
kxdkxd
時(shí)間:
2020-10-21 21:28
超時(shí)重來(lái),或者可以goto label
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1