C語言中return、break、continue用法和區(qū)別
作者 | strongerHuang
微信公眾號 | 嵌入式專欄C語言中 return、 break、continue 是我們常用的三個“流程控制”關(guān)鍵字。
你能熟練使用這三個關(guān)鍵字嗎?下面來講講這三個關(guān)鍵字,以及相關(guān)的內(nèi)容。
0概述
大部分編程語言中都存在return、 break、continue關(guān)鍵字,它們的作用有相似之處,有“流程控制”的功能。剛開始編程的時候,可能很多人都會搞混它們的關(guān)系,特別是 break 和 continue 很多人都沒搞明白。
這三個關(guān)鍵字的大概意思:return:跳出當(dāng)前正在執(zhí)行函數(shù)。break:在循環(huán)體內(nèi),結(jié)束整個循環(huán)過程。continue:結(jié)束本次的循環(huán),直接進(jìn)行下一次的循環(huán)。
1return
return:跳出當(dāng)前正在執(zhí)行函數(shù)。使用方法:return (表達(dá)式);其中,(表達(dá)式)是可以省略的。
1.有返回類型return通常都是帶有返回類型的,比如返回int型變量:
int Fun(void){ int rtn;
//函數(shù)代碼;
return rtn;}
這里可以返回變量、結(jié)構(gòu)體、指針等。
強(qiáng)調(diào)兩點(diǎn):a.return不能返回數(shù)組.b.return不能返回指向(函數(shù)內(nèi))局部變量的類型;
2.無返回類型有些情況下,return是無返回類型的。
比如,當(dāng)某個條件成立,需要結(jié)束執(zhí)行本函數(shù):
void Fun(void){ int rtn;
//函數(shù)代碼;
if(條件成立) return;
//函數(shù)代碼;}
強(qiáng)調(diào)兩點(diǎn):
a.void 空類型因?yàn)楹瘮?shù)的返回類型為void(空類型),所以,這里 return 是不帶任何值的。(帶有返回數(shù)據(jù),就會報錯)
b.void * 任意類型指針
void *Fun(void) 這是一個“返回任意類型指針”的指針函數(shù)(也是一個函數(shù),只是它返回類型是指針)。
2break
break:在循環(huán)體內(nèi),結(jié)束整個循環(huán)過程,然后執(zhí)行循環(huán)之后的代碼。
break常用語 for、 while 和 switch 語句中。比如:
for(i=0; i<100; i ){ //代碼
if(條件成立) break; //跳出for循環(huán)
//代碼}
switch(num){ case 1: //代碼 break;
case 2: //代碼 break;}
1.break只挑出當(dāng)前循環(huán)
比如:
int a=0;int i=0;int j=0;
for(i=0;i<=9;i ){ for(j=0;j<=9;j ) { break; a ; //這里a 不會執(zhí)行; }
a ; //這里a 會執(zhí)行;}printf("%d",a);
2.case如果沒有 break 會依順序執(zhí)行
如果 switch 沒有break,比如:
switch(num){ case 1: //代碼 //沒有break;
case 2: //代碼 //沒有break;
case 3: //代碼 //沒有break;}
相信有很多人都在這里踩過坑。
3continue
continue:結(jié)束本次的循環(huán),直接進(jìn)行下一次的循環(huán)。和break類似,continue也是用于循環(huán)語句中,只是這里剛好和break相反,這里是繼續(xù)執(zhí)行下一次循環(huán)(而不是跳出循環(huán))。
比如:for(i=0; i<100; i ){ //代碼1
if(條件成立) continue; //執(zhí)行下一次循環(huán)
//代碼2}
如果條件成立,則下面 代碼2 不會被執(zhí)行。
1.continue不用于switch語句中
break用于switch語句中,但continue通常不用于switch語句中。
2.break 和continue 主要區(qū)別
break 語句是結(jié)束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。
continue 語句則只結(jié)束本次循環(huán),而不是終止整個循環(huán)。