C語言中常見的幾種流程控制語句
1.goto語句
goto語句是一種無條件轉(zhuǎn)移語句,goto 語句的使用格式為:
goto 語句標(biāo)號(hào);
其中語句標(biāo)號(hào)是一個(gè)有效的標(biāo)識(shí)符,這個(gè)標(biāo)識(shí)符加上一個(gè) ":" 一起出現(xiàn)在函數(shù)內(nèi)某處,執(zhí)行g(shù)oto語句后,程序?qū)⑻D(zhuǎn)到該標(biāo)號(hào)處并執(zhí)行其后的語句;
另外語句標(biāo)號(hào)必須與goto語句同處于一個(gè)函數(shù)中,但可以不在一個(gè)循環(huán)層中;通常goto語句與if條件語句連用,當(dāng)滿足某一條件時(shí),程序跳到標(biāo)號(hào)處運(yùn)行;如下例子:
#include <stdio.h>
int main(void){
int i,sum=0;
i=1;
loop: if(i<=100){
sum=sum+i;
i++;
goto loop;
}
printf("%d\n",sum);
return 0;
}
2.if語句
if使用格式為:
if(condition1)
{}
else if(condition2)
{}
else if(condition3)
...
else
{}
除此之外,if語句之間可以嵌套,如下所示:

3.switch語句
switch的語法格式為:
switch (表達(dá)式)
{
case 常量1:語句1
case 常量2:語句2
...
default: 語句n+1
}

注意:
1)switch后面括號(hào)內(nèi)的表達(dá)式,其值類型應(yīng)該為整數(shù)類型,包括字符型;
2)可以沒有default語句,此時(shí)流程轉(zhuǎn)到switch語句的下一條語句執(zhí)行;
3)每一個(gè)分支語句后一般都要加一條break語句,用來跳出switch語句塊,最后一個(gè)分支可以不加;如將上面的例子改為:

此時(shí)的執(zhí)行結(jié)果為:

這是因?yàn)榉种Ш蟮某A勘磉_(dá)式只會(huì)匹配一次,匹配成功后就會(huì)執(zhí)行該分支后的所有語句,如果不加break,則會(huì)將后面所有分支的語句執(zhí)行完??!
4)多個(gè) case 分支可以共用一組執(zhí)行語句,如下:
case 'A':
case 'B':
{
printf....
}
4.while循環(huán)
語法格式:
while (表達(dá)式)
{
語句
}

5.do...while循環(huán)
語法格式:
do
{
語句
}while(表達(dá)式);
與while不同的是,do..while的循環(huán)體至少會(huì)被執(zhí)行一次
注意,在 do-while 結(jié)構(gòu)中,while 括號(hào)后的分號(hào)不能丟。
do-while 循環(huán)的執(zhí)行流程是:首先無條件地執(zhí)行一次循環(huán)體,然后再根據(jù)循環(huán)控制表達(dá)式的值來判斷是否繼續(xù)執(zhí)行循環(huán)體。若為真,則繼續(xù)執(zhí)行;若為假,則停止執(zhí)行,退出 do-while 循環(huán)。也就是說,do-while 循環(huán)至少執(zhí)行一次循環(huán)體。
do-while 循環(huán)和 while 循環(huán)的主要差別是:前者至少執(zhí)行一次循環(huán)體,后者有可能一次也不執(zhí)行循環(huán)體。
6.for循環(huán)
語法格式:
for ([表達(dá)式1];[表達(dá)式2];[表達(dá)式3])
語句
C語言for循環(huán)的流程圖

下面來看看看如何使用for循環(huán)來實(shí)現(xiàn)打印一個(gè)連續(xù)數(shù)據(jù)的簡(jiǎn)單程序。創(chuàng)建一個(gè)源文件:for-loop.c,其代碼如下所示 -
#include <stdio.h>
void main() {
int i = 0;
for (i = 1;i <= 10;i++) {
printf("%d \n", i);
}
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
1
2
3
4
5
6
7
8
9
10
break和continue
break用于終止當(dāng)前層次的循環(huán),而continue用于結(jié)束本次循環(huán),轉(zhuǎn)入下一次循環(huán)
break 語句很重要,用得非常多,初學(xué)者一定要掌握。continue 語句雖然沒有 break 語句用得多,但也經(jīng)常用到,而且不可或缺,需要用到 continue 的時(shí)候其他語句是無法替代的。
前面已經(jīng)介紹過 break 語句,它不僅可以跳出“循環(huán)體”,還可以跳出 switch。但事實(shí)上,break 也只能用于這兩種情況。break 語句不能用于循環(huán)語句和 switch 語句之外的任何其他語句中。
不管是 for 循環(huán),還是 while 循環(huán),或者是 do…while 循環(huán),都可以用 break 跳出來,但是 break 只能跳出一層循環(huán)。當(dāng)有多層循環(huán)嵌套的時(shí)候,break只能跳出“包裹”它的最里面的那一層循環(huán),無法一次跳出所有循環(huán)。
同樣,在多層 switch 嵌套的程序中,break 也只能跳出其所在的距離它最近的 switch。但多層 switch 嵌套實(shí)在是少見。
continue 的用法十分簡(jiǎn)單,其作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,然后進(jìn)行下一次是否執(zhí)行循環(huán)的判定。
總結(jié)
到此這篇關(guān)于C語言中常見的幾種流程控制語句的文章就介紹到這了,更多相關(guān)C語言流程控制語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Matlab實(shí)現(xiàn)多目標(biāo)粘液霉菌算法的示例代碼
多目標(biāo)粘液霉菌算法(MOSMA),這是最近開發(fā)的粘液霉菌算法(SMA)的多目標(biāo)變體,用于處理工業(yè)中的多目標(biāo)優(yōu)化問題。本文將用Matlab實(shí)現(xiàn)這一算法,需要的可以參考一下2022-05-05
使用C語言實(shí)現(xiàn)本地socke通訊的方法
這篇文章主要介紹了?使用C語言實(shí)現(xiàn)本地socke通訊,代碼分為服務(wù)器代碼和客戶端代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
C語言實(shí)現(xiàn)繪制LoveBeat愛心曲線的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何溧陽C語言實(shí)現(xiàn)繪制LoveBeat愛心曲線,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03

