C語言中break與continue的用法和區(qū)別詳解
前言
本文將通過簡單的實(shí)例來詳細(xì)分析在C語言中break語句和continue語句的用法和區(qū)別,歡迎大家批評指正。(部分內(nèi)容稍有重復(fù),大家可自行選擇跳轉(zhuǎn)目錄)
一、循環(huán)體中兩者的作用
1.while循環(huán)
我們先看一個循環(huán)示例:此程序在屏幕上打印出數(shù)字1—10
int main() { int i = 1; while (i <= 10) { printf("%d ", i); i++; } return 0; }
運(yùn)行結(jié)果:
(1)break語句 我們在剛才的代碼添加兩行代碼并使用break語句,使其變成以下程序:
int main() { int i = 1; while (i <= 10) { if (i == 5) break; printf("%d ", i); i++; } return 0; }
此程序運(yùn)行的結(jié)果如下圖:
對此程序的運(yùn)行結(jié)果進(jìn)行分析:
總結(jié): while 循環(huán)中的break是用于永久終止循環(huán)
(2)continue語句
還是剛才的代碼,我們將其中的break 語句替換為continue語句
int main() { int i = 1; while (i <= 10) { if (i == 5) //break; continue; printf("%d ", i); i++; } return 0; }
運(yùn)行該程序,得到結(jié)果:
我們可以看出,該程序并未執(zhí)行結(jié)束,以下是對該程序的分析:
總結(jié):continue 語句在while 循環(huán)中的作用是終止本次循環(huán),即continue后面的代碼不會執(zhí)行,程序會跳轉(zhuǎn)至while語句的判斷部分,由于此時 i 等于5并且永遠(yuǎn)滿足判斷條件小于等于10,因此該循環(huán)將進(jìn)入死循環(huán),一直進(jìn)行下去。
該示列對continue語句的用法不太直觀,因此我們進(jìn)行修改,將上述代碼中的i++ 語句放置while循環(huán)里的最前面,并對i 的初值以及循環(huán)條件做以修改,以保證改進(jìn)后的代碼依舊可在屏幕上打印數(shù)字1—10
以下是改進(jìn)后代碼:
int main() { int i = 0; while (i < 10) { i++; if (i == 5) //break; continue; printf("%d ", i); } return 0; }
以下是運(yùn)行結(jié)果:
然后我們在代碼中加入continue 語句:
int main() { int i = 0; while (i <10) { i++; if (i == 5) continue; printf("%d ", i); } return 0; }
以下是運(yùn)行結(jié)果:
2.for循環(huán)
還是剛才的示例,在屏幕上打印數(shù)字1—10,我們用for循環(huán)實(shí)現(xiàn)
int main() { int i = 0; for (i = 1; i <= 10; i++) { printf("%d ", i); } return 0; }
程序運(yùn)行結(jié)果:
(1)break語句
代碼:
int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) { break; } printf("%d ", i); } return 0; }
結(jié)果分析:
總結(jié): for循環(huán)中的break同while語句一樣,是用于永久終止循環(huán)。
(2)continue語句
代碼:
int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) { //break; continue; } printf("%d ", i); } return 0; }
結(jié)果分析:
總結(jié): for循環(huán)中的continue同while語句一樣,是用于跳出本次循環(huán),進(jìn)行下一次循環(huán)。
3.do while循環(huán)
示例:輸出1—10
int main() { int i = 0; do { i++; printf("%d ", i); } while (i < 10); return 0; }
結(jié)果:
(1)break語句
示例:
int main() { int i = 0; do { i++; if (i == 5) { break; //continue; } printf("%d ", i); } while (i < 10); return 0; }
結(jié)果:
(2)continue語句
示例:
int main() { int i = 0; do { i++; if (i == 5) { //break; continue; } printf("%d ", i); } while (i < 10); return 0; }
結(jié)果:
二、switch語句
continue語句只用于循環(huán)語句中,不能用于switch語句
而break語句可用于switch語句中。當(dāng)其使用時可使程序跳出switch而執(zhí)行switch以后的語句。如果沒有break語句,則會從滿足條件的地方(即與switch(表達(dá)式)括號中表達(dá)式匹配的case)開始執(zhí)行,直到switch結(jié)構(gòu)結(jié)束。
示例:輸入數(shù)字1—7,其中1—5輸出weekday,6、7輸出weekend.
int main() { int day=0; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf("weekday\n"); break; case 6: case 7: printf("weekend\n"); break; } return 0; }
結(jié)果:
總結(jié)
本文對C語言中break和continue語句詳細(xì)做了分析,由于三種循環(huán)(while、for、do while)在使用上有些差異,因此在實(shí)際應(yīng)用中要具體判斷,同時也感謝大家的觀看,以上是本文的全部內(nèi)容。
相關(guān)文章
C++?ASIO實(shí)現(xiàn)異步套接字管理詳解
Boost?ASIO(Asynchronous?I/O)是一個用于異步I/O操作的C++庫,該框架提供了一種方便的方式來處理網(wǎng)絡(luò)通信、多線程編程和異步操作,本文介紹了如何通過ASIO框架實(shí)現(xiàn)一個簡單的異步網(wǎng)絡(luò)套接字應(yīng)用程序,需要的可以參考下2023-08-08C++算法之海量數(shù)據(jù)處理方法的總結(jié)分析
本篇文章是對海量數(shù)據(jù)處理方法進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下2013-05-05直觀理解C語言中指向一位數(shù)組與二維數(shù)組的指針
這篇文章主要介紹了直觀理解C語言中指向一位數(shù)組與二維數(shù)組的指針,數(shù)組指針是C語言入門學(xué)習(xí)過程中的重點(diǎn)和難點(diǎn),需要的朋友可以參考下2016-05-05C++指針運(yùn)算符(&和*)的實(shí)現(xiàn)
C++ 提供了兩種指針運(yùn)算符,一種是取地址運(yùn)算符 &,一種是間接尋址運(yùn)算符 *,本文就詳細(xì)的介紹一下這兩種運(yùn)算符的使用,具有一定的參考價值,感興趣的可以了解一下2023-08-08C++ 實(shí)現(xiàn)漢諾塔的實(shí)例詳解
這篇文章主要介紹了C++ 實(shí)現(xiàn)漢諾塔的實(shí)例詳解的相關(guān)資料,這里主要說明C++中數(shù)據(jù)結(jié)構(gòu)的遞歸的應(yīng)用,需要的朋友可以參考下2017-08-08