第3章 選擇結(jié)構(gòu)流程與應(yīng)用_第1頁
第3章 選擇結(jié)構(gòu)流程與應(yīng)用_第2頁
第3章 選擇結(jié)構(gòu)流程與應(yīng)用_第3頁
第3章 選擇結(jié)構(gòu)流程與應(yīng)用_第4頁
第3章 選擇結(jié)構(gòu)流程與應(yīng)用_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論