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