剛開始編程的時候,可能很多人都會搞混它們的關(guān)系,特別是 break 和 continue 很多人都沒搞明白。
return:跳出當(dāng)前正在執(zhí)行函數(shù)。
break:在循環(huán)體內(nèi),結(jié)束整個循環(huán)過程。
continue:結(jié)束本次的循環(huán),直接進(jìn)行下一次的循環(huán)。
return:跳出當(dāng)前正在執(zhí)行函數(shù)。
使用方法:return (表達(dá)式);其中,(表達(dá)式)是可以省略的。?
1、有返回類型
return通常都是帶有返回類型的,比如返回int型變量:
int Fun(void){int rtn;//函數(shù)代碼;return rtn;}
return不能返回數(shù)組;
return不能返回指向(函數(shù)內(nèi))局部變量的類型。
2、無返回類型
有些情況下,return是無返回類型的。
比如,當(dāng)某個條件成立,需要結(jié)束執(zhí)行本函數(shù):
void Fun(void){int rtn;//函數(shù)代碼;if(條件成立)return;//函數(shù)代碼;}
強(qiáng)調(diào)兩點:
void 空類型:因為函數(shù)的返回類型為void(空類型),所以這里的 return 是不帶任何值的(帶有返回數(shù)據(jù),就會報錯)。
void *Fun(void)這是一個“返回任意類型指針”的指針函數(shù)(也是一個函數(shù),只是它返回類型是指針)。
比如uCOS郵箱部分的函數(shù):

break:在循環(huán)體內(nèi),結(jié)束整個循環(huán)過程,然后執(zhí)行循環(huán)之后的代碼。
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)
如果有兩層、甚至多層嵌套的for循環(huán),break只跳出它當(dāng)前所在那個for循環(huán),外層的for循環(huán)依然會繼續(xù)循環(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);
內(nèi)層那個a++不會執(zhí)行,所以最后輸出結(jié)果為:10
如果 switch 沒有break,比如:
switch(num){case 1: //代碼//沒有break;case 2: //代碼//沒有break;case 3: //代碼//沒有break;}
如果num=2,沒有break,則case 2 和 case 3都會被執(zhí)行。
比如:
for(i=0; i<100; i++){//代碼1if(條件成立)continue; //執(zhí)行下一次循環(huán)//代碼2}
1、continue不用于switch語句中
break用于switch語句中,但continue通常不用于switch語句中。
2、break 和continue 主要區(qū)別
break 語句是結(jié)束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。
continue 語句則只結(jié)束本次循環(huán),而不是終止整個循環(huán)。

END
→點關(guān)注,不迷路←