C語(yǔ)言中break與continue的用法和區(qū)別詳解
前言
本文將通過簡(jiǎn)單的實(shí)例來詳細(xì)分析在C語(yǔ)言中break語(yǔ)句和continue語(yǔ)句的用法和區(qū)別,歡迎大家批評(píng)指正。(部分內(nèi)容稍有重復(fù),大家可自行選擇跳轉(zhuǎn)目錄)
一、循環(huán)體中兩者的作用
1.while循環(huán)
我們先看一個(gè)循環(huán)示例:此程序在屏幕上打印出數(shù)字1—10
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
運(yùn)行結(jié)果:

(1)break語(yǔ)句 我們?cè)趧偛诺拇a添加兩行代碼并使用break語(yǔ)句,使其變成以下程序:
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d ", i);
i++;
}
return 0;
}
此程序運(yùn)行的結(jié)果如下圖:

對(duì)此程序的運(yùn)行結(jié)果進(jìn)行分析:

總結(jié): while 循環(huán)中的break是用于永久終止循環(huán)
(2)continue語(yǔ)句
還是剛才的代碼,我們將其中的break 語(yǔ)句替換為continue語(yǔ)句
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
//break;
continue;
printf("%d ", i);
i++;
}
return 0;
}
運(yùn)行該程序,得到結(jié)果:

我們可以看出,該程序并未執(zhí)行結(jié)束,以下是對(duì)該程序的分析:

總結(jié):continue 語(yǔ)句在while 循環(huán)中的作用是終止本次循環(huán),即continue后面的代碼不會(huì)執(zhí)行,程序會(huì)跳轉(zhuǎn)至while語(yǔ)句的判斷部分,由于此時(shí) i 等于5并且永遠(yuǎn)滿足判斷條件小于等于10,因此該循環(huán)將進(jìn)入死循環(huán),一直進(jìn)行下去。
該示列對(duì)continue語(yǔ)句的用法不太直觀,因此我們進(jìn)行修改,將上述代碼中的i++ 語(yǔ)句放置while循環(huán)里的最前面,并對(duì)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é)果:

然后我們?cè)诖a中加入continue 語(yǔ)句:
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語(yǔ)句
代碼:
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語(yǔ)句一樣,是用于永久終止循環(huán)。
(2)continue語(yǔ)句
代碼:
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語(yǔ)句一樣,是用于跳出本次循環(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語(yǔ)句
示例:
int main()
{
int i = 0;
do
{
i++;
if (i == 5)
{
break;
//continue;
}
printf("%d ", i);
} while (i < 10);
return 0;
}
結(jié)果:

(2)continue語(yǔ)句
示例:
int main()
{
int i = 0;
do
{
i++;
if (i == 5)
{
//break;
continue;
}
printf("%d ", i);
} while (i < 10);
return 0;
}
結(jié)果:

二、switch語(yǔ)句
continue語(yǔ)句只用于循環(huán)語(yǔ)句中,不能用于switch語(yǔ)句
而break語(yǔ)句可用于switch語(yǔ)句中。當(dāng)其使用時(shí)可使程序跳出switch而執(zhí)行switch以后的語(yǔ)句。如果沒有break語(yǔ)句,則會(huì)從滿足條件的地方(即與switch(表達(dá)式)括號(hào)中表達(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é)
本文對(duì)C語(yǔ)言中break和continue語(yǔ)句詳細(xì)做了分析,由于三種循環(huán)(while、for、do while)在使用上有些差異,因此在實(shí)際應(yīng)用中要具體判斷,同時(shí)也感謝大家的觀看,以上是本文的全部?jī)?nèi)容。
相關(guān)文章
C++?ASIO實(shí)現(xiàn)異步套接字管理詳解
Boost?ASIO(Asynchronous?I/O)是一個(gè)用于異步I/O操作的C++庫(kù),該框架提供了一種方便的方式來處理網(wǎng)絡(luò)通信、多線程編程和異步操作,本文介紹了如何通過ASIO框架實(shí)現(xiàn)一個(gè)簡(jiǎn)單的異步網(wǎng)絡(luò)套接字應(yīng)用程序,需要的可以參考下2023-08-08
C++算法之海量數(shù)據(jù)處理方法的總結(jié)分析
本篇文章是對(duì)海量數(shù)據(jù)處理方法進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下2013-05-05
直觀理解C語(yǔ)言中指向一位數(shù)組與二維數(shù)組的指針
這篇文章主要介紹了直觀理解C語(yǔ)言中指向一位數(shù)組與二維數(shù)組的指針,數(shù)組指針是C語(yǔ)言入門學(xué)習(xí)過程中的重點(diǎn)和難點(diǎn),需要的朋友可以參考下2016-05-05
C++指針運(yùn)算符(&和*)的實(shí)現(xiàn)
C++ 提供了兩種指針運(yùn)算符,一種是取地址運(yùn)算符 &,一種是間接尋址運(yùn)算符 *,本文就詳細(xì)的介紹一下這兩種運(yùn)算符的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
C++ 實(shí)現(xiàn)漢諾塔的實(shí)例詳解
這篇文章主要介紹了C++ 實(shí)現(xiàn)漢諾塔的實(shí)例詳解的相關(guān)資料,這里主要說明C++中數(shù)據(jù)結(jié)構(gòu)的遞歸的應(yīng)用,需要的朋友可以參考下2017-08-08

