版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計(jì)主編:連衛(wèi)民 何 櫻第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)本章主要內(nèi)容:4.1 if 語句(重點(diǎn))4.2 switch語句4.3 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例(重點(diǎn))本章教學(xué)要求:了解選擇結(jié)構(gòu)的特點(diǎn) 熟悉選擇結(jié)構(gòu)程序設(shè)計(jì)的一般方法 掌握 if 語句和 switch 語句的使用方法 4.1 if語句 if 語句也稱為條件語句,它根據(jù)一個(gè)條件的真和假有選擇地執(zhí)行或不執(zhí)行某個(gè)語句。C語言提供了三種形式的if語句,可以實(shí)現(xiàn)單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)和多分支選擇結(jié)構(gòu)。4.1.1 復(fù)合語句復(fù)合語句是用一對(duì)大括號(hào)“ ”括起來的一組語句。 復(fù)合語句的一般形式為: 說明部分; 語句部分; 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4
2、.1 if語句注意: 復(fù)合語句中的右大括號(hào)“”后面沒有分號(hào); 一個(gè)復(fù)合語句在語法上等價(jià)于單個(gè)語句,凡一個(gè)語句能夠出現(xiàn)的地方都能出現(xiàn)復(fù)合語句,換句話說,復(fù)合語句在邏輯上是一個(gè)語句; 復(fù)合語句中說明部分的變量,其作用域只限于該復(fù)合語句內(nèi)部,在復(fù)合語句外無意義; 后面將要介紹的if子句和else子句以及while、for的循環(huán)體,在語法上均看作為單個(gè)語句,若需要多個(gè)語句,必須寫成復(fù)合語句的形式。另外,函數(shù)體語法上也是一個(gè)復(fù)合語句,但復(fù)合語句可以嵌套,而函數(shù)體中不可以嵌套函數(shù)。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句4.1.2 單分支 if 語句格式: if(表達(dá)式) 語句;功能:先計(jì)算表達(dá)式的值,如
3、果表達(dá)式的值為真(非0值),則執(zhí)行其后的語句,否則,跳過該語句,執(zhí)行if語句的后續(xù)語句。其流程圖如圖4-1所示。第4章 選擇結(jié)構(gòu)的程序設(shè)計(jì)4.1 if語句說明:(1)表達(dá)式通常是關(guān)系表達(dá)式或邏輯表達(dá)式,也可以是任意類型的表達(dá)式(如整型、實(shí)型、字符型等)。在if語句的判斷中只要表達(dá)式的值為非0,就執(zhí)行表達(dá)式后面的語句。(2)表達(dá)式兩側(cè)的圓括號(hào)不能省略。(3)格式中的語句可以是單個(gè)語句,也可以是復(fù)合語句。如: if(ac,則交換其值,使得bc。這樣就得到了由小到大的順序。 由于篇幅所限,這里程序只運(yùn)行了一次,理論上,要測(cè)試程序正確,需要驗(yàn)證程序的每一個(gè)分支。對(duì)于本例,需要把a(bǔ)、b、c排序的三種情況
4、都測(cè)試一次,才能證明程序是正確的。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句4.1.3 雙分支 if 語句格式: if(表達(dá)式) 語句1; else 語句2;功能:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式的值為真(非0值),則執(zhí)行語句1;否則執(zhí)行語句2。其流程圖如圖4-2所示。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句說明:(1)if 和else 是C語言的關(guān)鍵字,且else 不是獨(dú)立的語句,它是if語句的一部分。使用時(shí)else必須與if成對(duì)使用,共同組成一條if-else 語句。(2)“語句1”稱為if子句 ,“語句2”稱為else子句,它們可以是單個(gè)語句或是復(fù)合語句。(3)在此形式的if語句中,無論if子
5、句或else子句形式上多么復(fù)雜,它們都是if或else的子語句,分別代表雙分支選擇結(jié)構(gòu)的分支之一,不要把子語句理解為獨(dú)立的語句。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句【例4-4】輸入三個(gè)整數(shù),輸出最大值。分析:假設(shè)三個(gè)數(shù)為a、b、c,先求出a和b中的大者,再將其和c比較,就可得出三數(shù)中的最大值。思考:如果程序中if(mc),該分支的語句將如何變化?請(qǐng)讀者自行修改練習(xí),并比較兩種用法。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句4.1.4 多分支 if 語句格式:if(表達(dá)式1) 語句1;else if(表達(dá)式2) 語句2;else if(表達(dá)式3) 語句3;else if(表達(dá)式n) 語句n;e
6、lse 語句n+1;功能:依次判斷表達(dá)式的值,如果其中一個(gè)表達(dá)式的值非0,則執(zhí)行相應(yīng)的語句,然后跳出整個(gè)if語句繼續(xù)執(zhí)行后續(xù)語句。如果所有的表達(dá)式都為0,則執(zhí)行語句n+1,然后執(zhí)行后續(xù)語句。其流程圖如圖4-3所示。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句說明:(1)無論有多少分支的if-else if語句,它們都是一個(gè)if語句,在分析程序時(shí)尤其要注意這點(diǎn),不要把一個(gè)多分支if語句理解為多個(gè)語句。(2)最后一個(gè)else常作為缺省條件,即當(dāng)前面的條件表達(dá)式測(cè)試都失敗時(shí),則執(zhí)行語句n+1?!纠?-6】輸入一個(gè)百分制成績,要求輸出其對(duì)應(yīng)的五級(jí)制的等級(jí),即90分以上為A,8089為B,7079為C,60
7、69為D,60分以下為E。思考:如果程序中if(mc),該分支的語句將如何變化?請(qǐng)讀者自行修改練習(xí),并比較兩種用法。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句4.1.5 條件運(yùn)算符 ?: C語言提供一種簡單方式來表示if-else 語句的一種形式。這被稱為條件表達(dá)式,使用條件運(yùn)算符“?:”實(shí)現(xiàn),格式:表達(dá)式1 ?表達(dá)式2 :表達(dá)式3功能:如果表達(dá)式1為真(非0),整個(gè)條件表達(dá)式的值等于表達(dá)式2的值,否則,整個(gè)條件表達(dá)式的值等于表達(dá)式3的值。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句switch語句的功能與if-else if類似,都是用來解決多分支選擇問題的。但是,在某些情況下,switc
8、h語句使用更加方便。 4.2.1 switch語句格式: switch(表達(dá)式) case 常量表達(dá)式1: 語句序列1; case 常量表達(dá)式2: 語句序列2; case 常量表達(dá)式n: 語句序列n; default:語句序列; 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句switch語句的執(zhí)行過程: 先計(jì)算switch表達(dá)式的值,然后將該值與各case后面的常量表達(dá)式的值進(jìn)行比較。當(dāng)其值與某一常量表達(dá)式的值相同時(shí),就從該case后面的語句開始執(zhí)行,直到switch語句結(jié)束時(shí)為止;若其值與所有的常量表達(dá)式的值都不相同,就執(zhí)行default后面的語句,若不存在default,則程序繼續(xù)執(zhí)行s
9、witch語句之后的語句。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句說明:(1)switch表達(dá)式是選擇條件,可以為任何類型。(2)case后面的常量表達(dá)式是值為常數(shù)的表達(dá)式,通常為常量或符號(hào)常量。類型必須和switch表達(dá)式的類型相同;(3)switch語句中的所有case常量表達(dá)式的值必須各不相同;(4)每個(gè)case(稱為一種情況)下可以有零或多個(gè)語句,有多個(gè)語句時(shí)可以不加。(5)當(dāng)switch找到與表達(dá)式相匹配的case時(shí),將從該case開始,執(zhí)行其后的所有分支,直到switch語句結(jié)束。如果希望程序只執(zhí)行與表達(dá)式相匹配的case,其它不執(zhí)行,則需要使用break語句。break語
10、句的作用是,使程序的執(zhí)行跳出switch語句,執(zhí)行switch語句后面的語句。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句【例4-7】運(yùn)行下列程序,熟悉switch的用法。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句【例4-8】運(yùn)行下列程序,寫出運(yùn)行結(jié)果。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句【例4-9】從鍵盤輸入兩個(gè)實(shí)數(shù)和一個(gè)四則運(yùn)算符(、)執(zhí)行相應(yīng)的運(yùn)算并輸出運(yùn)算結(jié)果。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 switch語句4.2.2 switch 和if-else 在解決多分支選擇問題時(shí),用switch或者用if-else通常是沒有一定之規(guī)的。如果選擇是基于求實(shí)型變量或表達(dá)式的
11、值,就不能使用switch。如果變量必須落入某個(gè)范圍,也不能很方便地使用switch。這樣寫是很簡單的: if(變量1&變量0:兩個(gè)不等實(shí)根; b2-4ac=0:兩個(gè)相等實(shí)根; b2-4ac0:兩個(gè)共軛復(fù)根。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.3 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例【例4-11】輸入三角形的三條邊,求三角形面積。三角形面積的計(jì)算公式為:分析: 第3章曾經(jīng)做過這道題,當(dāng)時(shí)要求運(yùn)行程序時(shí)輸入的三邊長必須能夠構(gòu)成一個(gè)三角形,否則程序?qū)⒊霈F(xiàn)錯(cuò)誤。構(gòu)成三角形的條件是任意兩邊之和大于第三邊,現(xiàn)在使用條件語句可以很方便地解決這個(gè)問題。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.3 選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)例【例4-12】編寫程序,將百分制成績轉(zhuǎn)換為五級(jí)制成績。轉(zhuǎn)換方法: 成績90分:優(yōu) 80成績90分:良 70成績80分:中 60成績70分:及格 成績60分:不及格第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.3 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例【例4-13】輸入年月日,判斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 恒流恒壓電源課程設(shè)計(jì)
- 體育行業(yè)的會(huì)計(jì)工作總結(jié)
- 線性代數(shù)總結(jié)課程設(shè)計(jì)
- 自動(dòng)散熱器課程設(shè)計(jì)
- 電子信息行業(yè)電話客服工作總結(jié)
- 文化行業(yè)采購合作案例分析
- 教育行業(yè)美工工作心得交流
- 2023-2024學(xué)年上海師大附中閔行分校高一(下)期中語文試卷
- 醫(yī)療機(jī)構(gòu)保安工作內(nèi)容詳解
- IT科技行業(yè)中信息技術(shù)顧問的工作總結(jié)
- 墩柱施工操作平臺(tái)相關(guān)計(jì)算
- 高職院校油層物理說課
- 計(jì)算機(jī)課件:計(jì)算機(jī)安全
- SCH壁厚等級(jí)對(duì)照表
- 道路減速帶減速模型分析
- 35kv及以下架空線路施工及驗(yàn)收規(guī)范
- 身體健康狀況自測(cè)表
- PID控制原理與調(diào)整方法
- 山東昌樂二中“271高效課堂”解讀
- 配電工程竣工資料
- 花鍵強(qiáng)度校核程序
評(píng)論
0/150
提交評(píng)論