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