版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章
選擇結(jié)構(gòu)流程和應(yīng)用學(xué)習(xí)目標(biāo)1了解選擇結(jié)構(gòu)判定條件的構(gòu)成2掌握單分支與雙分支選擇結(jié)構(gòu)程序設(shè)計(jì)3掌握多分支選擇結(jié)構(gòu)程序設(shè)計(jì)
1選擇結(jié)構(gòu)判定條件的構(gòu)成關(guān)系運(yùn)算符與關(guān)系表達(dá)式
邏輯運(yùn)算符與邏輯表達(dá)式
關(guān)系運(yùn)算符
關(guān)系運(yùn)算是對兩個(gè)操作數(shù)之間進(jìn)行比較的運(yùn)算符,其運(yùn)算結(jié)果為邏輯值(或稱“布爾”值,boolean)“真”或“假”。C語言中提供六種關(guān)系運(yùn)算符,如表3-1所示。
關(guān)系表達(dá)式
用關(guān)系運(yùn)算符把兩個(gè)表達(dá)式連接起來的式子稱為關(guān)系表達(dá)式。一般形式為:表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2
例如:x>3y<100!(x==0)x!=10試一試問題3.1
關(guān)系運(yùn)算符和關(guān)系表達(dá)式的用法演示。
調(diào)試問題3.1程序,觀察運(yùn)行結(jié)果邏輯運(yùn)算符及其運(yùn)算規(guī)則
邏輯運(yùn)算可以表示運(yùn)算對象的邏輯關(guān)系。表3-2給出了C語言中邏輯運(yùn)算符的種類、功能及運(yùn)算規(guī)則。表3-3給出了邏輯運(yùn)算真值表,說明了當(dāng)參加邏輯運(yùn)算的運(yùn)算對象為不同組合時(shí),各種邏輯運(yùn)算得到的結(jié)果。邏輯表達(dá)式
關(guān)系表達(dá)式只能描述單一的條件,而當(dāng)選擇判定的條件有多個(gè)時(shí),就要借助于邏輯表達(dá)式。用邏輯運(yùn)算符連接起來的式子稱為邏輯表達(dá)式。一般形式為:表達(dá)式1&&表達(dá)式2
或:
!表達(dá)式或:表達(dá)式1||表達(dá)式2
邏輯表達(dá)式執(zhí)行時(shí),先計(jì)算“表達(dá)式1”和“表達(dá)式2”或“表達(dá)式”的值,然后進(jìn)行邏輯運(yùn)算,運(yùn)算的結(jié)果為真時(shí)邏輯表達(dá)式的值為1,否則為0。試一試問題3.2
邏輯運(yùn)算符和邏輯表達(dá)式的用法演示。請觀察程序運(yùn)行結(jié)果。【程序代碼】調(diào)試問題3.2程序,觀察運(yùn)行結(jié)果再試一試問題3.3
邏輯運(yùn)算符&&和||用法演示。請觀察程序運(yùn)行結(jié)果。調(diào)試問題3.3程序,觀察運(yùn)行結(jié)果小結(jié)1.不要把關(guān)系運(yùn)算符“==”誤用為賦值運(yùn)算符“=”。比如,如果將判斷iX是否等于8的關(guān)系表達(dá)式“iX==8”寫成“iX=8”,那么它永遠(yuǎn)為“真”(不管iX原來的值是多少)。2.正確書寫關(guān)系表達(dá)式。如果表示“iX大于等于5,且iX小于等于20”,在數(shù)學(xué)中可寫為式子:5≤iX≤20,而在C程序中,如果寫成下面的表達(dá)式:
5<=iX<=20
則是錯(cuò)誤的。但這種錯(cuò)誤是一種語義上的錯(cuò)誤,而不是語法上的錯(cuò)誤,編譯器查不出來,編譯時(shí)不會報(bào)告錯(cuò)誤,但運(yùn)行時(shí),不論iX為何值(比如為3或60)表達(dá)式的值都是“真”,所以這種錯(cuò)誤比較“隱蔽”,不易被發(fā)現(xiàn),希望引起注意。正確的寫法應(yīng)該是:
5<=iX&&iX<=203.算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符在一起進(jìn)行混合運(yùn)算時(shí),各類運(yùn)算符的優(yōu)先級如下所示(自左至右,從高到低):!(非)—>算術(shù)運(yùn)算—>關(guān)系運(yùn)算—>&&—>||—>賦值運(yùn)算
2單分支和雙分支選擇結(jié)構(gòu)程序設(shè)計(jì)簡單if語句if-else語句條件運(yùn)算符與條件表達(dá)式簡單if語句學(xué)一學(xué)簡單if語句的形式為:
if(條件表達(dá)式)語句
其流程圖如圖3-1所示。語句的執(zhí)行過程是先計(jì)算“條件表達(dá)式”,若值為“真”,則執(zhí)行“語句”;否則什么也不做。此處的“語句”可以是簡單語句,也可以是用一對大括號“{}”括起來的復(fù)合語句。
試一試問題3.4從鍵盤輸入一個(gè)數(shù),輸出其絕對值。調(diào)試問題3.4程序,觀察運(yùn)行結(jié)果練一練問題:小明去參加一個(gè)同學(xué)的生日聚會,同學(xué)的家長規(guī)定18歲以上的才可以飲酒,所以需要編一程序根據(jù)輸入的年齡打印一張飲酒卷,使的能飲酒的同學(xué)可以獲取飲酒卷。if-else語句
學(xué)一學(xué)
if-else語句是標(biāo)準(zhǔn)的if語句。用來實(shí)現(xiàn)雙分支選擇結(jié)構(gòu),其一般形式為:
if(條件)語句1;
else語句2;
流程圖如圖3-3所示,若“條件”為“真”,則執(zhí)行“語句1”;否則執(zhí)行“語句2”。此處的“語句1”和“語句2”可以是簡單語句,也可以是用一對大括號“{}”括起來的復(fù)合語句。試一試
問題3.5
編一程序控制電燈開關(guān)。從鍵盤輸入1表示開燈,這時(shí)顯示“thelightisOn”,輸入0或其它數(shù)表示關(guān)燈,顯示“thelightisoff”。
調(diào)試問題3.5程序,觀察運(yùn)行結(jié)果練一練
問題:編一程序,從鍵盤輸入一個(gè)整數(shù),判斷它的奇偶性。如果輸入的是奇數(shù),輸出“ODD”,如果輸入的是偶數(shù),則輸出“EVEN”。提示:一個(gè)數(shù)若能被2整除,則該數(shù)是偶數(shù),若這個(gè)數(shù)不能被2整除,則該數(shù)為奇數(shù)。判斷一個(gè)數(shù)能否被另一個(gè)數(shù)整除可用求余運(yùn)算,比如5%3=1,說明5不能整除3,6%3=0,說明6可以整除3。
條件運(yùn)算符與條件表達(dá)式學(xué)一學(xué)C語言中有一種特有的運(yùn)算符稱為條件運(yùn)算符,即“?:”。它在某種程度上可以起到邏輯判斷的作用,一樣可以實(shí)現(xiàn)雙分支選擇結(jié)構(gòu)。由條件運(yùn)算符構(gòu)成的表達(dá)式稱為條件表達(dá)式,與if-else語句具有相同的功能。其一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
運(yùn)算規(guī)則為:如果“表達(dá)式1”的值為真,則條件表達(dá)式的運(yùn)算結(jié)果等于“表達(dá)式2”的值,否則,運(yùn)算結(jié)果等于“表達(dá)式3”的值。試一試問題3.6:編一程序從鍵盤輸入兩個(gè)整數(shù),輸出較大的一個(gè)。
調(diào)試問題3.6程序,觀察運(yùn)行結(jié)果練一練問題:1.請用if-else語句實(shí)現(xiàn)問題3-6的雙分支選擇結(jié)構(gòu)。2.用條件表達(dá)式實(shí)現(xiàn)問題3-5的雙分支選擇結(jié)構(gòu)。小結(jié)1.if和else同屬于一個(gè)if語句,else不能作為語句單獨(dú)使用,它只是if語句的一部分,與if配對使用。因此程序中不可以沒有if而只有else。2.if-else語句在執(zhí)行時(shí),只能執(zhí)行與if有關(guān)的語句或者執(zhí)行與else有關(guān)的語句,而不可能同時(shí)執(zhí)行兩者。3.if語句的表達(dá)式可以是任意類型的C語言的合法的表達(dá)式,除常見的關(guān)系表達(dá)式或邏輯表達(dá)式外,也允許是其它類型的數(shù)據(jù),如整型、實(shí)型、字符型等。4.在if和else的后面,可以是單條語句,也可以復(fù)合語句。單條語句時(shí),注意別忘記寫分號“;”,復(fù)合語句時(shí)要注意“{}”的后面不能加“;”。5.條件運(yùn)算符的其結(jié)合性為“從右到左”(即右結(jié)合性)。比如表達(dá)式iA>iB?iA:iC>iD?iC:iD相當(dāng)于iA>iB?iA:(iC>iD?iC:iD),如果iA=1,iB=2,iC=3,iD=4,則上述條件表達(dá)式的值等于4。6.條件表達(dá)式一般形式(表達(dá)式1?表達(dá)式2:表達(dá)式3)中的“表達(dá)式1”、“表達(dá)式2”、“表達(dá)式3”的類型,可以各不相同?!氨磉_(dá)式2”和“表達(dá)式3”不僅可以是數(shù)值表達(dá)式,也可以是賦值表達(dá)式或函數(shù)表達(dá)式。比如
iX>iY?printf(“%d”,iX):printf(“%d”,iY)
如果iX=3,iY=4,則條件表達(dá)式執(zhí)行結(jié)果為輸出iY的值。3多分支選擇結(jié)構(gòu)程序設(shè)計(jì)嵌套if-else語句switch語句
嵌套if-else語句學(xué)一學(xué)所謂嵌套就是在if-else語句的if或else子句中又包含了一個(gè)或多個(gè)if-else語句。其目的是解決多分支選擇問題,其一般形式為:
if(條件1)語句1;
elseif(條件2)語句2;
elseif(條件3)語句3;┇
elseif(條件n-1)語句n-1;
else語句n;
這是由雙路選擇語句所構(gòu)成的多路選擇結(jié)構(gòu)。此處的“語句1”、“語句2”…“語句n”可以是簡單語句,也可以是用一對大括號“{}”括起來的復(fù)合語句。語句流程圖如圖3-6所示。流程圖試一試問題3.7從鍵盤輸入一個(gè)自變量x,求分段函數(shù)y=f(x)的值,f(x)的表達(dá)式如下:
調(diào)試問題3.7程序,觀察運(yùn)行結(jié)果再試一試問題3.8編一程序?qū)⒊煽兊陌俜种妻D(zhuǎn)換為等級制。百分制與等級制的對應(yīng)關(guān)系如下:90-100對應(yīng)A、80-89對應(yīng)B、70-79對應(yīng)C、60-69對應(yīng)D、0-59對應(yīng)E。
調(diào)試問題3.8程序,觀察運(yùn)行結(jié)果練一練問題1.根據(jù)圖3-8給出的流程圖編寫程序,對比問題3.7中的程序代碼。2.編一程序可查詢駕駛證可以駕駛的車輛類型的。要求從鍵盤輸入駕照的類型可以輸出相應(yīng)的準(zhǔn)駕車型。比如輸入駕照類型‘C’,輸出準(zhǔn)駕車型:小轎車。其中,A牌駕照可駕駛大客車、人貨車和小轎車,B牌駕照可駕駛?cè)素涇嚭托∞I車,C牌駕照可駕駛小轎車,D牌駕照可駕駛摩托車。switch語句學(xué)一學(xué)
switch語句是C語言中又一種實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的語句,其一般形式是:switch(表達(dá)式){case常量表達(dá)式1:語句序列1case常量表達(dá)式2:語句序列2……case常量表達(dá)式n:語句序列ndefault:語句序列n+1}流程圖試一試問題3.9編一程序可查詢駕駛證可以駕駛的車輛類型。要求從鍵盤輸入駕照的類型。比如輸入駕照類型‘C’,輸出“你可以駕駛小轎車”。其中,A牌駕照可駕駛大客車、人貨車和小轎車,B牌駕照可駕駛?cè)素涇嚭托∞I車,C牌駕照可駕駛小轎車,D牌駕照可駕駛摩托車。調(diào)試問題3.9程序,觀察運(yùn)行結(jié)果再試一試問題3.10用switch語句解決問題3.8,將成績的百分制轉(zhuǎn)換為等級制。調(diào)試問題3.10程序,觀察運(yùn)行結(jié)果練一練問題:將星期一、星期二…星期六、星期日依次編號為1、2…6、7,編一程序從鍵盤輸入星期的序號,可輸出其對應(yīng)的英文。比如,輸入6,可輸出”Saturday”。小結(jié)1.嵌套if-else語句和switc
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無人駕駛行業(yè)子公司管理模板
- 智能家居招標(biāo)上墻企業(yè)管理
- 土壤修復(fù)項(xiàng)目招投標(biāo)攻略
- 娛樂場所樓宇對講施工合同
- 臨時(shí)文案撰寫合同樣本
- 健康安全與環(huán)境培訓(xùn)指導(dǎo)
- 建筑安全防護(hù)的施工合同客體是
- 基礎(chǔ)設(shè)施會計(jì)招聘合同范例
- 教育機(jī)構(gòu)物資管理
- 2024年工業(yè)設(shè)計(jì)項(xiàng)目實(shí)施與報(bào)酬合同
- 應(yīng)用英語智慧樹知到答案2024年陜西交通職業(yè)技術(shù)學(xué)院
- 光伏組件回收再利用建設(shè)項(xiàng)目可行性研究報(bào)告寫作模板-拿地申報(bào)
- 水電站可行性研究階段勘探工作施工組織設(shè)計(jì)
- 2024年高考英語考試易錯(cuò)點(diǎn):名詞性從句(4大陷阱)(解析版)
- 2024年“安康杯”安全知識競賽培訓(xùn)試題及答案
- 2024至2030年中國建筑設(shè)計(jì)行業(yè)市場調(diào)研分析及發(fā)展趨勢研究預(yù)測報(bào)告
- 《食品營銷學(xué)》教案全本
- 生產(chǎn)設(shè)備更新和技術(shù)改造項(xiàng)目資金申請報(bào)告-超長期國債
- 2024年廣東惠州市惠城區(qū)招聘事業(yè)單位工作人員23人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 孩子改名字理由申請書
- 2024北京首都旅游集團(tuán)公司招聘188人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
評論
0/150
提交評論