C語(yǔ)言詳細(xì)分析講解流程控制語(yǔ)句用法
一、分支語(yǔ)句
1.if語(yǔ)句
- 流程控制語(yǔ)句可以讓程序中的語(yǔ)句不再?gòu)纳系较轮饤l執(zhí)行
- 分支是一種流程控制語(yǔ)句,可以把程序中某些語(yǔ)句忽略掉不去執(zhí)行
- if關(guān)鍵字可以用來(lái)編寫(xiě)分支語(yǔ)句,只有當(dāng)表達(dá)式為真時(shí),才會(huì)執(zhí)行對(duì)應(yīng)語(yǔ)句
- 如果多個(gè)分支的邏輯表達(dá)式之間存在互斥關(guān)系,則可以采用else關(guān)鍵字把他們合并成一個(gè)分支語(yǔ)句
- 一個(gè)分支語(yǔ)句中的多個(gè)邏輯表達(dá)式之間如果具有互補(bǔ)關(guān)系,則可以把最后一個(gè)邏輯表達(dá)式省略
例如:從終端獲取一個(gè)數(shù)字,判斷 正數(shù),負(fù)數(shù),零
#include<stdio.h> int main(){ int num = 0; printf("請(qǐng)輸入一個(gè)整數(shù):"); scanf("%d",&num); if(num >= 0){ printf("正數(shù)\n"); } else if (num < 0){ printf("負(fù)數(shù)\n"); } else { printf("零\n"); } return 0; }
2.switch語(yǔ)句
- 如果有一組數(shù)字,數(shù)字的個(gè)數(shù)有限,每個(gè)數(shù)字對(duì)應(yīng)一組專(zhuān)門(mén)的處理語(yǔ)句。這種情況的分支可以采用下面的語(yǔ)法實(shí)實(shí)現(xiàn):
例:在控制臺(tái)獲取4個(gè)數(shù)字0,1,2,3,對(duì)應(yīng)輸出四個(gè)季節(jié)
#include <stdio.h> int main(){ int season = 0; printf("請(qǐng)輸入一個(gè)代表季節(jié)的數(shù)字:"); scanf("%d",&season); switch(season){ case 0: printf("春天\n"); break; case 1: printf("夏天\n"); break; case 2: printf("秋天\n"); break; case 3: printf("冬天\n"); break; default: // 如果上述情況都不匹配,執(zhí)行該語(yǔ)句 printf("所有情況都不匹配,請(qǐng)檢查輸入是否為正整數(shù)!"); break; } return 0; }
- switch后面的()里面不一定是一個(gè)變量,也可以是一個(gè)公式,如果例題需求改為:輸入的數(shù)字對(duì)4取余,對(duì)應(yīng)四個(gè)季節(jié),那么可以改為 switch(season % 4)
- default為case情況都不匹配的情況,才執(zhí)行
二、循環(huán)語(yǔ)句
循環(huán)語(yǔ)句可以讓一組語(yǔ)句多次反復(fù)執(zhí)行
1.for語(yǔ)句
for( exp1 ; exp2 ; exp3 ) 其中 exp1為變量初始值賦值語(yǔ)句,exp2為循環(huán)變量與終值的關(guān)系,exp3為循環(huán)變量怎么從初值變?yōu)榻K值。exp之間通過(guò)分號(hào) ; 隔開(kāi)
對(duì)于下例中的num++,即每次運(yùn)行完后,num = num +1 ,更多關(guān)于自增自減的內(nèi)容請(qǐng)參考《探討++i與i++哪個(gè)效率更高》
例:在屏幕循環(huán)打印12345五個(gè)數(shù)字
#include <stdio.h> int main(){ int num = 0; for(num =1;num <= 5;num++){ printf("%d\n",num); } return 0; }
2.break和continue語(yǔ)句
break語(yǔ)句隨時(shí)終止循環(huán)的執(zhí)行
continue語(yǔ)句可以把檔次大括號(hào)中后面的語(yǔ)句跳過(guò)
無(wú)論break還是continue,都只對(duì)直接包含它的循環(huán)語(yǔ)句產(chǎn)生影響
具體區(qū)別請(qǐng)參考C語(yǔ)言中break與continue的用法和區(qū)別詳解
3.循環(huán)嵌套
- 循環(huán)嵌套結(jié)構(gòu)可以用來(lái)解決復(fù)雜的循環(huán)問(wèn)題
- 首先把復(fù)雜問(wèn)題分組,為每組找到一個(gè)代表數(shù)字。
- 要求所有組的代表數(shù)字是規(guī)律變化的。
- 循環(huán)嵌套由兩個(gè)循環(huán)構(gòu)成,其中一個(gè)包含另一個(gè)。外循環(huán)負(fù)責(zé)描述組代表數(shù)字的變換過(guò)程,內(nèi)循環(huán)負(fù)責(zé)完成某組內(nèi)的所有處理任務(wù)。
- 循環(huán)嵌套結(jié)構(gòu)中內(nèi)循環(huán)的開(kāi)始數(shù)字和結(jié)束數(shù)字很可能需要根據(jù)外循環(huán)的循環(huán)。
例:采用for循環(huán)嵌套打印九九乘法表
#include <stdio.h> int main() { for (int i = 1; i < 9; i++) { for (int j = 1; j <= i; j++) { printf("%d*%d=%-4d", i, j,i*j); } printf("\n"); } return 0; }
4.while和do…while語(yǔ)句
- while關(guān)鍵字也可以用來(lái)編寫(xiě)循環(huán)
- for關(guān)鍵字編寫(xiě)的循環(huán)和while關(guān)鍵字編寫(xiě)的循環(huán)可以互相替代
- 當(dāng)編寫(xiě)循環(huán)時(shí)不容易算出循環(huán)的執(zhí)行次數(shù)時(shí)就可以考慮采用while關(guān)鍵字
- while(邏輯表達(dá)式){ 反復(fù)執(zhí)行的語(yǔ)句組 }
- while關(guān)鍵字也可以編寫(xiě)空語(yǔ)句和死循環(huán)
- 采用do…while語(yǔ)句也可以實(shí)現(xiàn)循環(huán),格式如下:
- do{ 語(yǔ)句 } while (邏輯表達(dá)式);
- 使用do…while語(yǔ)句可以保證大括號(hào)內(nèi)部的語(yǔ)句至少執(zhí)行依次
例:使用while循環(huán)輸出12345五個(gè)數(shù)字
#include<stdio.h> int main(){ int num = 1; while(num <= 5){ printf("%d\n",num); num++; } return 0; }
例 do…while演示
#include<stdio.h> int main(){ int num = 1; do{ printf("蕪湖~,我執(zhí)行成功啦!\n"); num++; }while(num < 1); return 0; }
輸出結(jié)果如下:num = 1不滿足while里面num < 1的條件,但是do會(huì)先執(zhí)行{ }里面的內(nèi)容,所以打印成功。
如果改成while形式,打印不成功:
到此這篇關(guān)于C語(yǔ)言詳細(xì)分析講解流程控制語(yǔ)句用法的文章就介紹到這了,更多相關(guān)C語(yǔ)言流程控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言指針變量作為函數(shù)參數(shù)的實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了C語(yǔ)言指針變量作為函數(shù)參數(shù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02