




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 分支結(jié)構(gòu),1) if 語(yǔ)句的一般形式 if (表達(dá)式) 語(yǔ)句; if (表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2; 其中: “語(yǔ)句”和“語(yǔ)句1”可以是用 括起來(lái)的復(fù)合語(yǔ)句。 “語(yǔ)句2”既可以是用 括起來(lái)的復(fù)合語(yǔ)句,也可以是或形式的if 語(yǔ)句。 “語(yǔ)句1”后面的“ ; ”是必須的。,4.1 if 語(yǔ)句,例4.1 輸入三個(gè)實(shí)數(shù),按小到大順序輸出。 main( ) float a,b,c,t; scanf(“%f,%f,%f ”, ,2) if 語(yǔ)句的嵌套形式一,if(表達(dá)式1),else if (表達(dá)式2),else if (表達(dá)式3),else if(表達(dá)式n),else,語(yǔ)句體1,語(yǔ)句體2
2、,語(yǔ)句體3,語(yǔ)句體n,語(yǔ)句體n +1,流程:,在 if 語(yǔ)句中又包含一個(gè)或多個(gè) if 語(yǔ)句稱為 if 語(yǔ)句的嵌套。,注:從最內(nèi)層開始,else總是與它前面最近的未曾配對(duì)的if 配對(duì),除非用花括號(hào)改變其配對(duì)關(guān)系。,2) if 語(yǔ)句的嵌套形式二,例4.2 編程求,的值。x的值從鍵盤輸入。,main( ) int x,y; scanf(“%d”, ,P58p59有多種寫法,若有如下 if 語(yǔ)句: if (ab) max=a; else max=b; 則可以用下面的條件運(yùn)算符處理: max=(ab) ? a : b; 同樣,對(duì)如下 if 語(yǔ)句: if (ab) printf(“%d”,a); else
3、 printf(“%d”,b); 也可用下面的語(yǔ)句代替: printf(“%d”,ab ? a : b);,3) 條件運(yùn)算符(p20), 條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,低于關(guān)系運(yùn)算符和算 術(shù)運(yùn)算符。如: ab?a:b+1; / 相當(dāng)于ab?a:(b+1) / 條件運(yùn)算符的結(jié)合方向?yàn)?“自右至左”。 如:ab?a:cd?c:d /* 相當(dāng)于ab?a:(cd?c:d) */ 若a=1, b=2, c=3, d=4,則條件表達(dá)式的值為4。 僅在if 語(yǔ)句內(nèi)嵌的語(yǔ)句為賦值語(yǔ)句時(shí),才能用條件表達(dá)式取代該if語(yǔ)句。 條件表達(dá)式中的操作對(duì)象可以是不同的類型,且其值取較高 的類型。如: x?a:b 當(dāng)x
4、= 0時(shí),條件表達(dá)式的值為b xy?1:1.5 當(dāng)x y時(shí),條件表達(dá)式的值為1.5,否則為1.0。, 條件運(yùn)算符 “ ? : ” 是一個(gè)三目運(yùn)算符,必須有三個(gè)操作對(duì)象。,例4.3 求一元二次方程的解。 #include “math.h” main( ) float a,b,c,d,x1,x2,p,q; scanf(“%f,%f,%f ”, ,4.2 switch 語(yǔ)句,用if或if/else或它們的嵌套也可使程序?qū)崿F(xiàn)多路分支,但容易出現(xiàn)下面的問題:,(1) 可讀性差,(2) 破壞結(jié)構(gòu),解決問題的方法:采用switch語(yǔ)句。,switch(變量) case 常量表達(dá)式1: 語(yǔ)句體1 case 常
5、量表達(dá)式2: 語(yǔ)句體2 case 常量表達(dá)式n: 語(yǔ)句體n default : 語(yǔ)句體(n+1) ,一般形式:,(1) 根據(jù)表達(dá)式的取值, 判斷其與哪一個(gè)常量表達(dá)式相等。如=表達(dá)式i,則自語(yǔ)句i開始執(zhí)行,直到語(yǔ)句n+1止。,(2) 若與所有常量表達(dá)式值不相等,則從default后的語(yǔ)句開始執(zhí)行。,功能:,注:default 可有可無(wú)。,找入口,例: 根據(jù)成績(jī)等級(jí)打印百分?jǐn)?shù)段.,switch (grade) case A: printf (85100n); case B: printf (7084n); case C: printf (6069n); case D: printf (60n);
6、default: printf (errorn); ,#include main() char grade; printf(please input a character:); scanf(%c, ,程序如下: 4_3_1,運(yùn)行結(jié)果為:,A ,程序運(yùn)行結(jié)果不在預(yù)料之中!,產(chǎn)生錯(cuò)誤的原因: 沒有完全起到分支作用。,85-100 70-84 60-69 60 Error,switch 語(yǔ)句為多路分支選擇語(yǔ)句。其一般形式如下: switch (表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; break; case 常量表達(dá)式2: 語(yǔ)句2; break; case 常量表達(dá)式n: 語(yǔ)句n; break; defaul t : 語(yǔ)句n+1; 其中: “表達(dá)式”可以是任何類型的表達(dá)式。 “常量表達(dá)式”的值必須互不相同。 各個(gè)case出現(xiàn)的先后順序?qū)?zhí)行結(jié)果沒有影響。 執(zhí)行完一個(gè)case后面的語(yǔ)句后,通過break語(yǔ)句結(jié)束該控制結(jié)構(gòu)。 若所有的“常量表達(dá)式”的值都不與“表達(dá)式”的值相匹配,就執(zhí)行default 后面的語(yǔ)句。 多個(gè)case可以共用一組執(zhí)行語(yǔ)句。 case后面若有多個(gè)語(yǔ)句,可以不用 括起。,4.2 switch語(yǔ)句,例4.4 某商店按如下折扣優(yōu)惠購(gòu)貨的顧客(演示4_4.c),試編程,輸入購(gòu)貨金額M,求顧
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綜合性醫(yī)院消毒滅菌專業(yè)服務(wù)合同
- 2025年度農(nóng)業(yè)土地整治土地承包合同
- 2025年度抵押車個(gè)人車輛抵押權(quán)解除后續(xù)貸合同模板
- 寵物運(yùn)輸司機(jī)勞務(wù)協(xié)議
- 2025年廣東生態(tài)工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)必考題
- 2025年二手房市場(chǎng)分析:二手房市場(chǎng)降幅收窄
- 2024年三季度報(bào)重慶地區(qū)A股主營(yíng)業(yè)務(wù)利潤(rùn)排名前十大上市公司
- 2024-2025學(xué)年福建省福州市馬尾第一中學(xué)等六校高二上學(xué)期期中聯(lián)考生物試卷
- 2023-2024學(xué)年湖南省衡陽(yáng)市祁東縣高考考前仿真聯(lián)考三生物試卷
- 意見征詢稿回復(fù)函
- sinamic變頻器家族cu250s-操作手冊(cè)
- 發(fā)證機(jī)關(guān)所在地區(qū)代碼表
- 建筑垃圾回收利用統(tǒng)計(jì)臺(tái)賬
- 《不一樣的你我他》(完美)課件
- 外研版一起點(diǎn)二年級(jí)下冊(cè)英語(yǔ)全冊(cè)課件
- 原油電脫鹽電脫水技術(shù)
- XE82000--午山風(fēng)電場(chǎng)風(fēng)機(jī)定檢作業(yè)指導(dǎo)書
- 前列腺癌臨床路徑(最全版)
- 奧數(shù)知識(shí)點(diǎn) 間隔問題
- 簡(jiǎn)易旋轉(zhuǎn)倒立擺及控制裝置
- 深圳大學(xué)《數(shù)字信號(hào)處理》2009年期末考試試卷A卷
評(píng)論
0/150
提交評(píng)論