![c語言分支結(jié)構(gòu)_第1頁](http://file4.renrendoc.com/view11/M03/0A/05/wKhkGWWh5WuAP7N_AAG3gnznJAM013.jpg)
![c語言分支結(jié)構(gòu)_第2頁](http://file4.renrendoc.com/view11/M03/0A/05/wKhkGWWh5WuAP7N_AAG3gnznJAM0132.jpg)
![c語言分支結(jié)構(gòu)_第3頁](http://file4.renrendoc.com/view11/M03/0A/05/wKhkGWWh5WuAP7N_AAG3gnznJAM0133.jpg)
![c語言分支結(jié)構(gòu)_第4頁](http://file4.renrendoc.com/view11/M03/0A/05/wKhkGWWh5WuAP7N_AAG3gnznJAM0134.jpg)
![c語言分支結(jié)構(gòu)_第5頁](http://file4.renrendoc.com/view11/M03/0A/05/wKhkGWWh5WuAP7N_AAG3gnznJAM0135.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三部分C語言的結(jié)構(gòu)語句
第4章選擇結(jié)構(gòu)4.1if語句4.1.1單分支if語句它的一般格式如下:
if(表達(dá)式)語句;說明:對條件表達(dá)式進(jìn)行判斷,若其值為“真(非0)”時執(zhí)行語句,若其值為“假(0)”時則跳過語句。其執(zhí)行過程見流程圖4.1。例如:設(shè)定學(xué)生成績60分為及格分?jǐn)?shù)線,用單分支if語句描述為:
if(grade>=60)
printf(“passed\n”);又如:x大于y就輸出x,用單分支if語句描述為:
if(x>y)
printf(“%d”,x);4.1.2雙分支if語句它的一般格式如下:if(表達(dá)式)語句1;else語句2;說明:與單分支if語句不同的是在條件為“真(非0)”或“假(0)”時執(zhí)行指定的不同的操作。對條件表達(dá)式進(jìn)行判斷,若其值為“真(非0)”時,就執(zhí)行語句1;若其值為“假(0)”時,就執(zhí)行語句2。其執(zhí)行過程見流程圖4.2。例如:給學(xué)生成績劃分:成績大于或等于60分時輸出“passed”,成績小于60分時輸出“failed”。用雙分支if語句描述為:
if(grade>=60)
printf(“passed\n”);else
printf(“failed\n”);在前面的章節(jié)還提到過與if/else結(jié)構(gòu)密切相關(guān)的條件運(yùn)算符?:,它是C語言中唯一的三目運(yùn)算符(即有三個操作數(shù))。對上面的兩例用條件運(yùn)算符改寫為:
grade>=60?printf(“passed\n”):printf(“failed\n”);x>y?printf(“%d”,x):printf(“%d”,y);由此說明適當(dāng)?shù)恼Z句修改條件運(yùn)算符可以完成if/else結(jié)構(gòu)相同的功能。說明:1.對于單分支和雙分支if后面的“表達(dá)式”,一般為邏輯表達(dá)式或關(guān)系表達(dá)式,事實(shí)上表達(dá)式的類型不限于此,可以是任意的數(shù)值類型(包括整型、實(shí)型、字符型、指針型數(shù)據(jù))。只要表達(dá)式的值為非0,就認(rèn)為它為真;只要表達(dá)式的值為0,就認(rèn)為它為假。例如:if(6)printf(“passed\n”);if(‘A’)printf(“%d”,‘A’);
這些都是合法的if語句。2.對于雙分支if語句,else子句不能作為語句單獨(dú)使用,它必須是if語句的一部分,與if配對使用。3.if語句后面的表達(dá)式之后不能增加分號,同時注意語句后面的分號不能遺漏。4.在if和else后面可以只包括一個內(nèi)嵌的操作語句,也可以包括多個操作語句,此時務(wù)必用“{}”將幾個語句括起來成為一個復(fù)合語句。例如:if(x>100){x--;s=+x;}else{x++;s=+x;}此時又要注意:在“{}”后面不能再添加分號,因?yàn)椤皗}”內(nèi)是一個完整的復(fù)合語句,不需要再添加分號。4.1.3多分支if語句對于解決判斷多個條件的問題,可以使用if語句的嵌套,即在if語句中又包括一個或多個if語句。它的一般格式如下:if(表達(dá)式1)
語句1;elseif(表達(dá)式2)語句2;elseif(表達(dá)式3)
語句3;┆elseif(表達(dá)式m)
語句m;else
語句n;說明:開始執(zhí)行該結(jié)構(gòu)后,便依次去對多個條件進(jìn)行判斷測試,符合某一條件,則轉(zhuǎn)去執(zhí)行該條件下的操作,其它部分將被跳過;如果無一條件為“真(非0)”,就執(zhí)行最后一個else所指定的操作,這個else可以看作“其它情形”。應(yīng)當(dāng)特別注意if與else的匹配關(guān)系:規(guī)則是從最內(nèi)層開始,else總是與它上面最近的(未曾配對的)if配對。其執(zhí)行過程見流程圖4.3?!纠?-1】編程實(shí)現(xiàn)給一百分制成績,要求輸出成績等級‘A’、‘B’、‘C’、‘D’、‘E’。90分以上為‘A’等,89~80分為‘B’等,79~70分為‘C’等,69~60分為‘D’等,60分以下為‘E’等?!驹闯绦颉縨ain(){intgrade;printf("inputthegrade:");scanf("%d",&grade);if(grade>=90)printf("A\n");elseif(grade>=80)printf("B\n");elseif(grade>=70)printf("C\n");elseif(grade>=60)printf("D\n");elseprintf("E\n");}4.2switch語句
4.2.1switch語句對于解決實(shí)際生活中例如人口統(tǒng)計(jì)分類、工資統(tǒng)計(jì)分類、銀行存款分類等等的多分支選擇問題,采用多分支if語句(即if語句的嵌套)來處理固然可以,但是如果分支較多,則嵌套的if語句層數(shù)多,程序冗長而且會導(dǎo)致可讀性降低。C語言提供了直接處理多分支選擇的switch語句,它的一般格式如下:switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;┆case常量表達(dá)式n:語句n;
default:語句m;}說明:其執(zhí)行過程為進(jìn)入switch結(jié)構(gòu)后,根據(jù)表達(dá)式的值從上到下去找與其相匹配的case,以此作為入口,執(zhí)行其后面的各語句。對【例4-1】用switch語句改寫如下:【源程序】main(){intgrade;printf("inputthegrade:");scanf("%d",&grade);switch(grade/10){case10:case9:printf("A\n");case8:printf("B\n");case7:printf("C\n");case6:printf("D\n");default:printf("E\n");}}【運(yùn)行結(jié)果】inputthegrade:98ABCDE說明:此時的結(jié)果并不是我們所希望得到的,也就是說根據(jù)switch后面表達(dá)式的值找到了相匹配的case分支后,就以此為入口執(zhí)行后面的所有語句,而不再進(jìn)行判斷了。其流程圖如圖4.5。4.2.2break語句在switch結(jié)構(gòu)中的運(yùn)用為了正確使用switch結(jié)構(gòu)從多種結(jié)果中選擇一種結(jié)果的功能,我們可以運(yùn)用前面學(xué)過的break語句來達(dá)到此目的。對流程圖4.5修改如下如圖4.6:【源程序】main(){intgrade;printf("inputthegrade:");scanf("%d",&grade);switch(grade/10){case10:case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;default:printf("E\n");break;}}說明:1.switch結(jié)構(gòu)的執(zhí)行部分是一個由一些case子句和一個可缺省的default子句組成的復(fù)合語句,特別注意要用一對“{}”括起來。2.switch后面的表達(dá)式一般是整型表達(dá)式或字符型表達(dá)式,與之相對應(yīng)的case后面的常量表達(dá)式也應(yīng)是一個整型表達(dá)式或字符型表達(dá)式,但要注意case與常量表達(dá)式之間要有空格。例如:case6+9:printf(“ok”);是合法的。3.在執(zhí)行switch語句時,根據(jù)其后表達(dá)式的值找相匹配的case子句,要注意“case常量表達(dá)式”只是起語句標(biāo)號的作用,并不是在該處進(jìn)行條件判斷。當(dāng)找到相匹配的case子句即入口標(biāo)號時,就從此標(biāo)號開始執(zhí)行后面的語句。因此,應(yīng)該在執(zhí)行一個case子句后必須增加一條間斷語句break來使流程跳出switch結(jié)構(gòu)。如果未找到相匹配的case子句就執(zhí)行default子句,若default子句放在最后其后可以不加break語句。4.各個case子句出現(xiàn)的次序?qū)?zhí)行結(jié)果沒任何影響,即順序可以任意布局。5.每一個case能夠擁有一條或多條語句,其最大的不同之處在于使用多條語句時不需要用“{}”括起來。6.多個case可以共用一組執(zhí)行語句。例如:┆
case‘A’:case‘a(chǎn)’:++count;break;┆成績?yōu)榇髮懽帜窤或小寫字母a都進(jìn)行累加求和。7.switch結(jié)構(gòu)中的case子句中的常量表達(dá)式的值不允許相同。8.switch結(jié)構(gòu)允許嵌套。4.3實(shí)例解析【例4-2】從鍵盤輸入三個整數(shù)a、b、c,輸出最大的一個?!揪幊趟悸贰糠治觯嚎梢韵日页鯽與b之間的較大者,然后再將這個較大者與c比較找出較大者,則此數(shù)即為三個數(shù)中的最大數(shù)。【源程序】解法1:main(){int
a,b,c;printf("input
a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("themaxis:%d\n",c>((a>b)?a:b)?c:((a>b)?a:b));}解法2:main(){
int
a,b,c,max;
printf("input
a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
if(a>c)max=a;elsemax=c;else
if(b>c)max=b;elsemax=c;
printf("themax
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化活動策劃方案范文
- 現(xiàn)代企業(yè)如何依賴云平臺優(yōu)化數(shù)據(jù)審核流程
- 游戲類直播平臺的用戶行為分析與優(yōu)化策略研究
- 現(xiàn)代舞臺背景屏技術(shù)革新與發(fā)展
- 環(huán)保材料在辦公環(huán)境建設(shè)中的應(yīng)用
- 生產(chǎn)過程中的危機(jī)應(yīng)對與風(fēng)險(xiǎn)化解
- 未來十年電動汽車市場預(yù)測與展望
- 生態(tài)系統(tǒng)服務(wù)在商業(yè)地產(chǎn)開發(fā)中的應(yīng)用
- 現(xiàn)代網(wǎng)絡(luò)技術(shù)企業(yè)管理的重要支撐
- 18《書湖陰先生壁》說課稿-2024-2025學(xué)年統(tǒng)編版語文六年級上冊
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 養(yǎng)老護(hù)理員培訓(xùn)老年人日常生活照料
- 黑龍江省哈爾濱市八年級(下)期末化學(xué)試卷
- 各種抽油泵的結(jié)構(gòu)及工作原理幻燈片
- 學(xué)習(xí)弘揚(yáng)雷鋒精神主題班會PPT雷鋒精神我傳承爭當(dāng)時代好少年P(guān)PT課件(帶內(nèi)容)
- 社區(qū)獲得性肺炎的護(hù)理查房
- 體育賽事策劃與管理第八章體育賽事的利益相關(guān)者管理課件
- 專題7閱讀理解之文化藝術(shù)類-備戰(zhàn)205高考英語6年真題分項(xiàng)版精解精析原卷
- 《生物資源評估》剩余產(chǎn)量模型
- 2022年廣東省10月自考藝術(shù)概論00504試題及答案
- 隧道二襯承包合同參考
評論
0/150
提交評論