版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章
選擇結(jié)構(gòu)流程和應用學習目標1了解選擇結(jié)構(gòu)判定條件的構(gòu)成2掌握單分支與雙分支選擇結(jié)構(gòu)程序設計3掌握多分支選擇結(jié)構(gòu)程序設計
1選擇結(jié)構(gòu)判定條件的構(gòu)成關(guān)系運算符與關(guān)系表達式
邏輯運算符與邏輯表達式
關(guān)系運算符
關(guān)系運算是對兩個操作數(shù)之間進行比較的運算符,其運算結(jié)果為邏輯值(或稱“布爾”值,boolean)“真”或“假”。C語言中提供六種關(guān)系運算符,如表3-1所示。
關(guān)系表達式
用關(guān)系運算符把兩個表達式連接起來的式子稱為關(guān)系表達式。一般形式為:表達式1關(guān)系運算符表達式2
例如:x>3y<100!(x==0)x!=10試一試問題3.1
關(guān)系運算符和關(guān)系表達式的用法演示。
調(diào)試問題3.1程序,觀察運行結(jié)果邏輯運算符及其運算規(guī)則
邏輯運算可以表示運算對象的邏輯關(guān)系。表3-2給出了C語言中邏輯運算符的種類、功能及運算規(guī)則。表3-3給出了邏輯運算真值表,說明了當參加邏輯運算的運算對象為不同組合時,各種邏輯運算得到的結(jié)果。邏輯表達式
關(guān)系表達式只能描述單一的條件,而當選擇判定的條件有多個時,就要借助于邏輯表達式。用邏輯運算符連接起來的式子稱為邏輯表達式。一般形式為:表達式1&&表達式2
或:
!表達式或:表達式1||表達式2
邏輯表達式執(zhí)行時,先計算“表達式1”和“表達式2”或“表達式”的值,然后進行邏輯運算,運算的結(jié)果為真時邏輯表達式的值為1,否則為0。試一試問題3.2
邏輯運算符和邏輯表達式的用法演示。請觀察程序運行結(jié)果?!境绦虼a】調(diào)試問題3.2程序,觀察運行結(jié)果再試一試問題3.3
邏輯運算符&&和||用法演示。請觀察程序運行結(jié)果。調(diào)試問題3.3程序,觀察運行結(jié)果小結(jié)1.不要把關(guān)系運算符“==”誤用為賦值運算符“=”。比如,如果將判斷iX是否等于8的關(guān)系表達式“iX==8”寫成“iX=8”,那么它永遠為“真”(不管iX原來的值是多少)。2.正確書寫關(guān)系表達式。如果表示“iX大于等于5,且iX小于等于20”,在數(shù)學中可寫為式子:5≤iX≤20,而在C程序中,如果寫成下面的表達式:
5<=iX<=20
則是錯誤的。但這種錯誤是一種語義上的錯誤,而不是語法上的錯誤,編譯器查不出來,編譯時不會報告錯誤,但運行時,不論iX為何值(比如為3或60)表達式的值都是“真”,所以這種錯誤比較“隱蔽”,不易被發(fā)現(xiàn),希望引起注意。正確的寫法應該是:
5<=iX&&iX<=203.算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符在一起進行混合運算時,各類運算符的優(yōu)先級如下所示(自左至右,從高到低):!(非)—>算術(shù)運算—>關(guān)系運算—>&&—>||—>賦值運算
2單分支和雙分支選擇結(jié)構(gòu)程序設計簡單if語句if-else語句條件運算符與條件表達式簡單if語句學一學簡單if語句的形式為:
if(條件表達式)語句
其流程圖如圖3-1所示。語句的執(zhí)行過程是先計算“條件表達式”,若值為“真”,則執(zhí)行“語句”;否則什么也不做。此處的“語句”可以是簡單語句,也可以是用一對大括號“{}”括起來的復合語句。
試一試問題3.4從鍵盤輸入一個數(shù),輸出其絕對值。調(diào)試問題3.4程序,觀察運行結(jié)果練一練問題:小明去參加一個同學的生日聚會,同學的家長規(guī)定18歲以上的才可以飲酒,所以需要編一程序根據(jù)輸入的年齡打印一張飲酒卷,使的能飲酒的同學可以獲取飲酒卷。if-else語句
學一學
if-else語句是標準的if語句。用來實現(xiàn)雙分支選擇結(jié)構(gòu),其一般形式為:
if(條件)語句1;
else語句2;
流程圖如圖3-3所示,若“條件”為“真”,則執(zhí)行“語句1”;否則執(zhí)行“語句2”。此處的“語句1”和“語句2”可以是簡單語句,也可以是用一對大括號“{}”括起來的復合語句。試一試
問題3.5
編一程序控制電燈開關(guān)。從鍵盤輸入1表示開燈,這時顯示“thelightisOn”,輸入0或其它數(shù)表示關(guān)燈,顯示“thelightisoff”。
調(diào)試問題3.5程序,觀察運行結(jié)果練一練
問題:編一程序,從鍵盤輸入一個整數(shù),判斷它的奇偶性。如果輸入的是奇數(shù),輸出“ODD”,如果輸入的是偶數(shù),則輸出“EVEN”。提示:一個數(shù)若能被2整除,則該數(shù)是偶數(shù),若這個數(shù)不能被2整除,則該數(shù)為奇數(shù)。判斷一個數(shù)能否被另一個數(shù)整除可用求余運算,比如5%3=1,說明5不能整除3,6%3=0,說明6可以整除3。
條件運算符與條件表達式學一學C語言中有一種特有的運算符稱為條件運算符,即“?:”。它在某種程度上可以起到邏輯判斷的作用,一樣可以實現(xiàn)雙分支選擇結(jié)構(gòu)。由條件運算符構(gòu)成的表達式稱為條件表達式,與if-else語句具有相同的功能。其一般形式為:
表達式1?表達式2:表達式3
運算規(guī)則為:如果“表達式1”的值為真,則條件表達式的運算結(jié)果等于“表達式2”的值,否則,運算結(jié)果等于“表達式3”的值。試一試問題3.6:編一程序從鍵盤輸入兩個整數(shù),輸出較大的一個。
調(diào)試問題3.6程序,觀察運行結(jié)果練一練問題:1.請用if-else語句實現(xiàn)問題3-6的雙分支選擇結(jié)構(gòu)。2.用條件表達式實現(xiàn)問題3-5的雙分支選擇結(jié)構(gòu)。小結(jié)1.if和else同屬于一個if語句,else不能作為語句單獨使用,它只是if語句的一部分,與if配對使用。因此程序中不可以沒有if而只有else。2.if-else語句在執(zhí)行時,只能執(zhí)行與if有關(guān)的語句或者執(zhí)行與else有關(guān)的語句,而不可能同時執(zhí)行兩者。3.if語句的表達式可以是任意類型的C語言的合法的表達式,除常見的關(guān)系表達式或邏輯表達式外,也允許是其它類型的數(shù)據(jù),如整型、實型、字符型等。4.在if和else的后面,可以是單條語句,也可以復合語句。單條語句時,注意別忘記寫分號“;”,復合語句時要注意“{}”的后面不能加“;”。5.條件運算符的其結(jié)合性為“從右到左”(即右結(jié)合性)。比如表達式iA>iB?iA:iC>iD?iC:iD相當于iA>iB?iA:(iC>iD?iC:iD),如果iA=1,iB=2,iC=3,iD=4,則上述條件表達式的值等于4。6.條件表達式一般形式(表達式1?表達式2:表達式3)中的“表達式1”、“表達式2”、“表達式3”的類型,可以各不相同?!氨磉_式2”和“表達式3”不僅可以是數(shù)值表達式,也可以是賦值表達式或函數(shù)表達式。比如
iX>iY?printf(“%d”,iX):printf(“%d”,iY)
如果iX=3,iY=4,則條件表達式執(zhí)行結(jié)果為輸出iY的值。3多分支選擇結(jié)構(gòu)程序設計嵌套if-else語句switch語句
嵌套if-else語句學一學所謂嵌套就是在if-else語句的if或else子句中又包含了一個或多個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”可以是簡單語句,也可以是用一對大括號“{}”括起來的復合語句。語句流程圖如圖3-6所示。流程圖試一試問題3.7從鍵盤輸入一個自變量x,求分段函數(shù)y=f(x)的值,f(x)的表達式如下:
調(diào)試問題3.7程序,觀察運行結(jié)果再試一試問題3.8編一程序?qū)⒊煽兊陌俜种妻D(zhuǎn)換為等級制。百分制與等級制的對應關(guān)系如下:90-100對應A、80-89對應B、70-79對應C、60-69對應D、0-59對應E。
調(diào)試問題3.8程序,觀察運行結(jié)果練一練問題1.根據(jù)圖3-8給出的流程圖編寫程序,對比問題3.7中的程序代碼。2.編一程序可查詢駕駛證可以駕駛的車輛類型的。要求從鍵盤輸入駕照的類型可以輸出相應的準駕車型。比如輸入駕照類型‘C’,輸出準駕車型:小轎車。其中,A牌駕照可駕駛大客車、人貨車和小轎車,B牌駕照可駕駛?cè)素涇嚭托∞I車,C牌駕照可駕駛小轎車,D牌駕照可駕駛摩托車。switch語句學一學
switch語句是C語言中又一種實現(xiàn)多分支選擇結(jié)構(gòu)的語句,其一般形式是:switch(表達式){case常量表達式1:語句序列1case常量表達式2:語句序列2……case常量表達式n:語句序列ndefault:語句序列n+1}流程圖試一試問題3.9編一程序可查詢駕駛證可以駕駛的車輛類型。要求從鍵盤輸入駕照的類型。比如輸入駕照類型‘C’,輸出“你可以駕駛小轎車”。其中,A牌駕照可駕駛大客車、人貨車和小轎車,B牌駕照可駕駛?cè)素涇嚭托∞I車,C牌駕照可駕駛小轎車,D牌駕照可駕駛摩托車。調(diào)試問題3.9程序,觀察運行結(jié)果再試一試問題3.10用switch語句解決問題3.8,將成績的百分制轉(zhuǎn)換為等級制。調(diào)試問題3.10程序,觀察運行結(jié)果練一練問題:將星期一、星期二…星期六、星期日依次編號為1、2…6、7,編一程序從鍵盤輸入星期的序號,可輸出其對應的英文。比如,輸入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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上半年云南事業(yè)單位聯(lián)考云南體育運動職業(yè)技術(shù)學院 公開招聘人員考試備考試題及答案解析
- 《國際物流管理 第4版》 課件 第10章 國際貨物運輸保險
- 2026中信證券股份有限公司永康金城路證券營業(yè)部招聘(浙江)考試參考題庫及答案解析
- 2026年東營河口區(qū)事業(yè)單位公開招聘工作人員(21人)筆試模擬試題及答案解析
- 2026年福建莆田第五中學初中部辦公室文員招聘1人筆試備考題庫及答案解析
- 2026江蘇揚州市江都區(qū)數(shù)據(jù)局招聘編制外工作人員2人考試參考題庫及答案解析
- 2026廣西賀州市事業(yè)單位公開招聘489人考試參考題庫及答案解析
- 護理營養(yǎng)支持
- 紅色真空采血系統(tǒng)發(fā)生溶血常見原因及防范措施醫(yī)學講座2
- 美容護膚與營養(yǎng)搭配
- 2025食品機械行業(yè)智能化分析及技術(shù)升級趨勢與投資可行性評估報告
- 2025年度黨委黨建工作總結(jié)
- 《經(jīng)濟法學》2025-2025期末試題及答案
- CAICV智能網(wǎng)聯(lián)汽車遠程升級(OTA)發(fā)展現(xiàn)狀及建議
- 新質(zhì)生產(chǎn)力在體育產(chǎn)業(yè)高質(zhì)量發(fā)展中的路徑探索
- 2025年公民素質(zhì)養(yǎng)成知識考察試題及答案解析
- 老年人營養(yǎng)和飲食
- 《關(guān)鍵軟硬件自主可控產(chǎn)品名錄》
- 2025年濟南市九年級中考語文試題卷附答案解析
- 信息安全風險評估及應對措施
- 紅藍黃光治療皮膚病臨床應用專家共識(2025版)解讀
評論
0/150
提交評論