C語言中常見的幾種流程控制語句
1.goto語句
goto語句是一種無條件轉(zhuǎn)移語句,goto 語句的使用格式為:
goto 語句標號;
其中語句標號是一個有效的標識符,這個標識符加上一個 ":" 一起出現(xiàn)在函數(shù)內(nèi)某處,執(zhí)行g(shù)oto語句后,程序?qū)⑻D(zhuǎn)到該標號處并執(zhí)行其后的語句;
另外語句標號必須與goto語句同處于一個函數(shù)中,但可以不在一個循環(huán)層中;通常goto語句與if條件語句連用,當(dāng)滿足某一條件時,程序跳到標號處運行;如下例子:
#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 (表達式) { case 常量1:語句1 case 常量2:語句2 ... default: 語句n+1 }
注意:
1)switch后面括號內(nèi)的表達式,其值類型應(yīng)該為整數(shù)類型,包括字符型;
2)可以沒有default語句,此時流程轉(zhuǎn)到switch語句的下一條語句執(zhí)行;
3)每一個分支語句后一般都要加一條break語句,用來跳出switch語句塊,最后一個分支可以不加;如將上面的例子改為:
此時的執(zhí)行結(jié)果為:
這是因為分支后的常量表達式只會匹配一次,匹配成功后就會執(zhí)行該分支后的所有語句,如果不加break,則會將后面所有分支的語句執(zhí)行完?。?/p>
4)多個 case 分支可以共用一組執(zhí)行語句,如下:
case 'A': case 'B': { printf.... }
4.while循環(huán)
語法格式:
while (表達式) { 語句 }
5.do...while循環(huán)
語法格式:
do { 語句 }while(表達式);
與while不同的是,do..while的循環(huán)體至少會被執(zhí)行一次
注意,在 do-while 結(jié)構(gòu)中,while 括號后的分號不能丟。
do-while 循環(huán)的執(zhí)行流程是:首先無條件地執(zhí)行一次循環(huán)體,然后再根據(jù)循環(huán)控制表達式的值來判斷是否繼續(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 ([表達式1];[表達式2];[表達式3]) 語句
C語言for循環(huán)的流程圖
下面來看看看如何使用for循環(huán)來實現(xiàn)打印一個連續(xù)數(shù)據(jù)的簡單程序。創(chuàng)建一個源文件: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 的時候其他語句是無法替代的。
前面已經(jīng)介紹過 break 語句,它不僅可以跳出“循環(huán)體”,還可以跳出 switch。但事實上,break 也只能用于這兩種情況。break 語句不能用于循環(huán)語句和 switch 語句之外的任何其他語句中。
不管是 for 循環(huán),還是 while 循環(huán),或者是 do…while 循環(huán),都可以用 break 跳出來,但是 break 只能跳出一層循環(huán)。當(dāng)有多層循環(huán)嵌套的時候,break只能跳出“包裹”它的最里面的那一層循環(huán),無法一次跳出所有循環(huán)。
同樣,在多層 switch 嵌套的程序中,break 也只能跳出其所在的距離它最近的 switch。但多層 switch 嵌套實在是少見。
continue 的用法十分簡單,其作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,然后進行下一次是否執(zhí)行循環(huán)的判定。
總結(jié)
到此這篇關(guān)于C語言中常見的幾種流程控制語句的文章就介紹到這了,更多相關(guān)C語言流程控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Matlab實現(xiàn)多目標粘液霉菌算法的示例代碼
多目標粘液霉菌算法(MOSMA),這是最近開發(fā)的粘液霉菌算法(SMA)的多目標變體,用于處理工業(yè)中的多目標優(yōu)化問題。本文將用Matlab實現(xiàn)這一算法,需要的可以參考一下2022-05-05C語言實現(xiàn)繪制LoveBeat愛心曲線的示例代碼
這篇文章主要為大家詳細介紹了如何溧陽C語言實現(xiàn)繪制LoveBeat愛心曲線,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03