C語(yǔ)言第6章選擇結(jié)構(gòu)程序設(shè)計(jì).ppt
《C語(yǔ)言第6章選擇結(jié)構(gòu)程序設(shè)計(jì).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言第6章選擇結(jié)構(gòu)程序設(shè)計(jì).ppt(28頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
教學(xué)內(nèi)容 6 1if語(yǔ)句6 2switch語(yǔ)句6 3選擇結(jié)構(gòu)程序舉例教學(xué)要求 1 掌握if語(yǔ)句的語(yǔ)法和使用方法 2 掌握switch語(yǔ)句的語(yǔ)法和使用方法 3 掌握分支語(yǔ)句的嵌套使用方法 第6章選擇結(jié)構(gòu)程序設(shè)計(jì) 例如 某一單位要給職工增加工資 它的規(guī)定是 工資低于1000元的職工 每人增加工資100元 超過(guò)1000元的職工暫不增加工資 選擇條件 工資低于1000元嗎 數(shù)據(jù)處理 是增加工資100元 否則不增加工資如果增加工資的規(guī)定是 工資低于1000元的職工 每人增加工資200元 超過(guò)1000元的職工增加工資100元 選擇條件 工資低于1000元嗎 數(shù)據(jù)處理 是增加工資200元否則增加工資100元 在C語(yǔ)言中 當(dāng)需要根據(jù)選擇條件來(lái)確定所要做 執(zhí)行 哪一項(xiàng)數(shù)據(jù)處理的情況 這樣的程序結(jié)構(gòu) 被稱為選擇結(jié)構(gòu) 在C語(yǔ)言中表示選擇條件 一般用 關(guān)系表達(dá)式 邏輯表達(dá)式二 實(shí)現(xiàn)選擇結(jié)構(gòu)用什么語(yǔ)句 C語(yǔ)言中實(shí)現(xiàn)選擇結(jié)構(gòu)所用語(yǔ)句 條件分支 if語(yǔ)句 if else 開(kāi)關(guān)分支 switch語(yǔ)句 switch case 在C語(yǔ)言中 設(shè)計(jì)選擇結(jié)構(gòu)程序要解決的問(wèn)題 一 如何表示選擇條件 1 第一種形式 1 語(yǔ)句格式 if 表達(dá)式 語(yǔ)句語(yǔ)句中的表達(dá)式必須用單括號(hào) 和 括起來(lái) 表達(dá)式后面語(yǔ)句也可使用復(fù)合語(yǔ)句 2 語(yǔ)句功能 如果表達(dá)式的值為真 T 則執(zhí)行其后的語(yǔ)句 否則不執(zhí)行該語(yǔ)句 在C語(yǔ)言中 沒(méi)有邏輯型數(shù)據(jù)類型 當(dāng)表達(dá)式的值為任何非零值 表示表達(dá)式的條件成立 當(dāng)表達(dá)式的值為零值 表示表達(dá)式的條件不成立 6 1if語(yǔ)句 2 第二種形式 1 語(yǔ)句格式 if 表達(dá)式 語(yǔ)句1 else語(yǔ)句2 說(shuō)明 else子句 可選 是if語(yǔ)句的一部分 必須與if配對(duì)使用 不能單獨(dú)使用 2 語(yǔ)句功能 如果表達(dá)式的值為真 非零 則執(zhí)行語(yǔ)句1 否則執(zhí)行語(yǔ)句2 例6 1輸入兩個(gè)整數(shù) 輸出其中的大數(shù) voidmain inta b max printf ninputtwonumbers scanf d d 例6 2輸入兩個(gè)整數(shù) 輸出其中的大數(shù) main inta b printf inputtwonumbers scanf d d 例6 3從鍵盤(pán)輸入兩個(gè)數(shù) 按升序輸出兩個(gè)數(shù) includemain floata b t scanf f f 3 第三種形式 1 語(yǔ)句格式if 表達(dá)式1 語(yǔ)句組1 elseif 表達(dá)式2 語(yǔ)句組2 elseif 表達(dá)式3 語(yǔ)句組3 elseif 表達(dá)式4 語(yǔ)句組4 else 語(yǔ)句組5 若語(yǔ)句組5又是一條if語(yǔ)句 整個(gè)語(yǔ)句最少是一個(gè)6個(gè)分支的多分支if語(yǔ)句 2 多分支if語(yǔ)句的執(zhí)行過(guò)程 當(dāng) 表達(dá)式1 的值不等于0時(shí) 則執(zhí)行語(yǔ)句組1 然后轉(zhuǎn)向下一條語(yǔ)句 否則 當(dāng) 表達(dá)式2 的值不等于0時(shí) 執(zhí)行語(yǔ)句組2 轉(zhuǎn)向下一條語(yǔ)句 再否則 當(dāng) 表達(dá)式3 的值不等于0時(shí) 執(zhí)行語(yǔ)句組3 轉(zhuǎn)向下一條語(yǔ)句 再否則 當(dāng) 表達(dá)式4 的值不等于0時(shí) 執(zhí)行語(yǔ)句組4 轉(zhuǎn)向下一條語(yǔ)句 再否則 執(zhí)行語(yǔ)句組5 轉(zhuǎn)向下一條語(yǔ)句 4 if語(yǔ)句說(shuō)明 1 在三種形式的if語(yǔ)句中 條件表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式 但也可以是其它表達(dá)式 如賦值表達(dá)式等 甚至也可以是一個(gè)變量 2 在if語(yǔ)句的三種形式中 所有的語(yǔ)句應(yīng)為單個(gè)語(yǔ)句 如果要想在滿足條件時(shí)執(zhí)行一組 多個(gè) 語(yǔ)句 則必須把這一組語(yǔ)句用 括起來(lái)組成一個(gè)復(fù)合語(yǔ)句 但要注意的是在右括號(hào) 之后不能再加分號(hào) 例6 4輸入 輸出對(duì)應(yīng)的單詞 includemain charch ch getchar if ch printf plus n elseif ch printf minus n elseif ch printf multiply n elseif ch printf divide n elseprintf error n 5 if語(yǔ)句與條件運(yùn)算符如果在條件語(yǔ)句中 只執(zhí)行單個(gè)的賦值語(yǔ)句時(shí) ??墒褂脳l件表達(dá)式來(lái)實(shí)現(xiàn) 不但使程序簡(jiǎn)潔 也提高了運(yùn)行效率 例6 5輸入任意三個(gè)整數(shù) 求三個(gè)數(shù)中的最大值 main intn1 n2 n3 max scanf d d d max n1 n2 n1 n3 n1 n3 n2 n3 n2 n3 6 if語(yǔ)句的嵌套與嵌套匹配原則 1 if語(yǔ)句嵌套 是指 在 語(yǔ)句1 或 和 語(yǔ)句2 中 又包含有if語(yǔ)句的情況 if語(yǔ)句嵌套時(shí) else子句與在它上面 距它最近 且尚未匹配的if配對(duì) 例如 if a b s s t elseif a b t 5 語(yǔ)句2是if語(yǔ)句 elset 2 s 例6 6輸入任意三個(gè)整數(shù) 求三個(gè)數(shù)中的最大值 main intn1 n2 n3 scanf d d d 例6 7if語(yǔ)句的嵌套使用main inta b c d x a b c 0 d 20 if a d d 10 elseif d 2 if c x 15 elsex 25 printf d d x d n d x 說(shuō)明 1 if后面的 表達(dá)式 除常見(jiàn)的關(guān)系表達(dá)式或邏輯表達(dá)式外 也允許是其它類型的表達(dá)式 其數(shù)值可以是整型 實(shí)型 字符型 1 switch語(yǔ)句的一般形式switch 表達(dá)式 case常量表達(dá)式1 語(yǔ)句組1case常量表達(dá)式2 語(yǔ)句組2 case常量表達(dá)式 語(yǔ)句組n default 語(yǔ)句組n 1 表達(dá)式 可以是int char和枚舉型中的一種 每個(gè)case后面 常量表達(dá)式 的值 必須各不相同 多個(gè)case子句 可共用同一語(yǔ)句 組 6 2switch語(yǔ)句 2 執(zhí)行過(guò)程 1 當(dāng)switch后面 表達(dá)式 的值 與某個(gè)case后面的 常量表達(dá)式 的值相同時(shí) 就執(zhí)行該case后面的語(yǔ)句組 2 如果沒(méi)有任何一個(gè)case后面的 常量表達(dá)式 的值 與 表達(dá)式 的值匹配 則執(zhí)行default后面的語(yǔ)句 然后 再執(zhí)行switch語(yǔ)句的下一條 case后面的常量表達(dá)式僅起語(yǔ)句標(biāo)號(hào)作用 并不進(jìn)行條件判斷 系統(tǒng)一旦找到入口標(biāo)號(hào) 就從此標(biāo)號(hào)開(kāi)始執(zhí)行 不再進(jìn)行標(biāo)號(hào)判斷 3 switch語(yǔ)句使用說(shuō)明 1 在case后的各常量表達(dá)式的值不能相同 否則會(huì)出現(xiàn)錯(cuò)誤 2 在case后 允許有多個(gè)語(yǔ)句 可以不用 括起來(lái) 3 各case和default子句的先后順序可以隨意變動(dòng) 4 default子句可以省略不用 5 多個(gè)case子句 可共用同一語(yǔ)句 組 例6 8輸出變量a的值main inta 0 i 1 switch i case0 case1 a 2 case2 case3 a 3 default a 7 printf d n a 2個(gè)case子句 共用同一語(yǔ)句 組 執(zhí)行順序 a 2 a 3 a 7 4 switch語(yǔ)句中break語(yǔ)句使用switch 表達(dá)式 case常量表達(dá)式1 語(yǔ)句組1 break case常量表達(dá)式2 語(yǔ)句組2 break case常量表達(dá)式 語(yǔ)句組n break default 語(yǔ)句組n 1 執(zhí)行過(guò)程當(dāng)switch后面 表達(dá)式 的值 與某個(gè)case后面的 常量表達(dá)式 的值相同時(shí) 就執(zhí)行該case后面的語(yǔ)句 組 當(dāng)執(zhí)行到break語(yǔ)句時(shí) 跳出switch語(yǔ)句 轉(zhuǎn)向執(zhí)行switch語(yǔ)句的下一條 例6 9從鍵盤(pán)上輸入一個(gè)百分制成績(jī)score 按下列原則輸出其等級(jí) score 90 等級(jí)為A 80 score 90 等級(jí)為B 70 score 80 等級(jí)為C 60 score 70 等級(jí)為D score 60 等級(jí)為E main intscore grade printf Inputascore 0 100 scanf d 成績(jī)整除10 轉(zhuǎn)化case標(biāo)號(hào) switch grade case10 case9 printf grade A n break case8 printf grade B n break case7 printf grade C n break case6 printf grade D n break case5 case4 case3 case2 case1 case0 printf grade E n break default printf Thescoreisoutofrange n 程序運(yùn)行情況如下 Inputascore 0 100 85 grade B 例6 10計(jì)算階躍函數(shù)y的值 includemain floatx y printf inputx scanf f 當(dāng)X 0y 1X 0y 0X 0y 1 6 3選擇結(jié)構(gòu)程序舉例 例6 11已知某公司員工的保底薪水為500 某月所接工程的利潤(rùn)profit 整數(shù) 與利潤(rùn)提成的關(guān)系如下 計(jì)量單位 元 profit 1000沒(méi)有提成 1000 profit 2000提成10 2000 profit 5000提成15 5000 profit 10000提成20 10000 profit提成25 算法設(shè)計(jì)要點(diǎn) 提成的變化點(diǎn)都是1000的整數(shù)倍 1000 2000 5000 如果將利潤(rùn)profit整除1000 則當(dāng) profit 1000對(duì)應(yīng)0 11000 profit 2000對(duì)應(yīng)1 22000 profit 5000對(duì)應(yīng)2 3 4 55000 profit 10000對(duì)應(yīng)5 6 7 8 9 1010000 profit對(duì)應(yīng)10 11 12 為解決相鄰兩個(gè)區(qū)間的重疊問(wèn)題 最簡(jiǎn)單的方法就是 利潤(rùn)profit先減1 最小增量 然后再整除1000即可 profit 1000對(duì)應(yīng)01000 profit 2000對(duì)應(yīng)12000 profit 5000對(duì)應(yīng)2 3 45000 profit 10000對(duì)應(yīng)5 6 7 8 910000 profit對(duì)應(yīng)10 11 12 main longprofit intgrade floatsalary 500 printf Inputprofit scanf ld switch grade case0 break profit 1000 case1 salary profit 0 1 break case2 case3 case4 salary profit 0 15 break case5 case6 case7 case8 case9 salary profit 0 2 break default salary profit 0 25 printf salary 2f n salary 同學(xué)們?cè)僖?jiàn) 程序設(shè)計(jì)基礎(chǔ)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語(yǔ)言 選擇 結(jié)構(gòu) 程序設(shè)計(jì)
鏈接地址:http://m.italysoccerbets.com/p-6334544.html