




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 選擇結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)的N-S流程圖如圖6.1所示。,圖6.1 選擇結(jié)構(gòu)的N-S流程圖,P為選擇的條件,對(duì)于執(zhí)行A還是B要根據(jù)條件P的判斷結(jié)果來決定,如果條件P的結(jié)果為真則執(zhí)行A,如果條件P的結(jié)果為假則執(zhí)行B。這里條件P的結(jié)果就成為執(zhí)行A還是B的關(guān)鍵所在。P是一個(gè)判斷的條件,其結(jié)果為真或者假,將其稱為“邏輯量”。C語言中沒有提供邏輯型變量,可以使用整型數(shù)據(jù)去描述1表示真,0表示假。在C語言中任意確定的值都可作為邏輯量處理,當(dāng)作為邏輯量處理時(shí),如果該值為非0,則表示真(1),如果該值為0,則表示假(0)。下面講述條件P的邏輯量表示方法。,6.1 邏輯量的表示方法 6.2 if語句 6
2、.3 switch語句 6.4 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例,6.1 邏輯量的表示方法 C語言中邏輯量是用整型數(shù)據(jù)來表示的,用來表示真或成立,用來表示假或不成立。邏輯量的表示是非常靈活的,具體表示方法有以下幾種方式。,6.1.1 關(guān)系表達(dá)式,1關(guān)系運(yùn)算符 關(guān)系運(yùn)算是一種比較運(yùn)算符兩側(cè)運(yùn)算對(duì)象大小的運(yùn)算,完成兩個(gè)運(yùn)算對(duì)象比較,運(yùn)算結(jié)果為成立與不成立,用1和0表示。 關(guān)系運(yùn)算符有以下6種: ,=,=,=,!= 關(guān)系運(yùn)算符是雙目運(yùn)算符。其中前4種的優(yōu)先級(jí)相同但要高于后2種,后2種優(yōu)先級(jí)相同。所有6種運(yùn)算符的優(yōu)先級(jí)都高于賦值運(yùn)算符,但都低于算術(shù)運(yùn)算符。此6種關(guān)系型運(yùn)算符均為左結(jié)合性。,2關(guān)系表達(dá)式 用關(guān)系運(yùn)算
3、符將運(yùn)算對(duì)象連接起來的合乎C語言規(guī)則的表達(dá)式稱為關(guān)系表達(dá)式。 例如: ab,3+7!=10,aa a+(b=a+) 都是合法的C語言關(guān)系表達(dá)式。 關(guān)系表達(dá)式的求解遵循表達(dá)式求解規(guī)則,關(guān)系運(yùn)算的結(jié)果只有兩種可能,要么關(guān)系成立為真(1),要么關(guān)系不成立為假(0)。,例如有整型變量a,b,且a3,b5, 求解表達(dá)式:aba 算術(shù)運(yùn)算符“”的優(yōu)先級(jí)高于關(guān)系運(yùn)算符“”,因此先計(jì)算ab的值為8,之后運(yùn)算8a,而a參加運(yùn)算時(shí)需轉(zhuǎn)換為整型數(shù)97運(yùn)算,實(shí)際運(yùn)算的是897,判斷后其結(jié)果為不成立,表達(dá)式的運(yùn)算結(jié)果為0。 若有關(guān)系表達(dá)式0x10,則其運(yùn)算結(jié)果為邏輯量1。表達(dá)式中兩個(gè)運(yùn)算的優(yōu)先級(jí)相同,于是首先運(yùn)算0x,
4、x的值無論是多少,運(yùn)算結(jié)果只能是1或者0;然后要么運(yùn)算110,要么運(yùn)算010,其運(yùn)算結(jié)果必然為1。,6.1.2 邏輯運(yùn)算和邏輯表達(dá)式 1邏輯運(yùn)算符 C語言中邏輯運(yùn)算符一共有3個(gè): scanf(%d%d, ,圖6.7 例6.2的流程圖,使用if語句要注意以下幾點(diǎn)。 (1)if語句是一條語句。 (2)邏輯量是if語句選擇判斷的條件,C語言中任意確定的值都可以作為邏輯量處理。 (3)邏輯量為1和為0的分支都只能是單條語句,如果要執(zhí)行多個(gè)操作的話,應(yīng)該將多個(gè)操作復(fù)合為單條語句才能出現(xiàn)在if的分支結(jié)構(gòu)中。 (4)分支中出現(xiàn)的語句1是復(fù)合語句的時(shí)候,后不應(yīng)該有“;”。 (5)語句中語句1是條件語句中必不可
5、少的部分。 (6)正確理解if語句和N-S選擇結(jié)構(gòu)流程圖的對(duì)應(yīng)關(guān)系。,嵌套主要用于處理多條件的題目。設(shè)計(jì)嵌套選擇結(jié)構(gòu)時(shí),應(yīng)清晰描述各條件之間的約束關(guān)系。嵌套的if語句可以簡(jiǎn)單描述如下: 嵌入的if語句是在當(dāng)外圍的if語句的條件p1的邏輯量值為1時(shí)才可以執(zhí)行,即其作為外圍if語句的條件成立時(shí)的執(zhí)行語句,嵌入在外圍if內(nèi)。當(dāng)然語句1、語句2、語句3也可以是if語句,具體的嵌套形式和具體題目中的多條件是密切相關(guān)的, if語句的嵌套形式應(yīng)建立在對(duì)具體問題的分析上。,6.2.2 if語句的嵌套及多條件結(jié)構(gòu)的實(shí)現(xiàn),例6.4 求函數(shù)中x為任意值時(shí) y 的值。 由于if選擇結(jié)構(gòu)僅有兩個(gè)分支,而此分段函數(shù)x的定
6、義域?yàn)槿种?,因此?dāng)確定x的關(guān)系表達(dá)式時(shí),其中必然有一個(gè)分支包含另外兩部分定義域,需在此基礎(chǔ)上作進(jìn)一步的條件判斷。,根據(jù)流程圖得到如下程序: main() main() float x,y; float x,y; scanf(%f, ,圖6.9 例6.4的流程圖 圖6.10 例6.4的流程圖2,6.2.3 條件表達(dá)式 條件運(yùn)算符由兩個(gè)符號(hào)“?”和“:”復(fù)合而成,此運(yùn)算符為C語言中惟一的一個(gè)三目運(yùn)算符,其優(yōu)先級(jí)只比賦值運(yùn)算符和逗號(hào)運(yùn)算符高,結(jié)合性為從右到左。 條件表達(dá)式的一般格式為: 表達(dá)式1?表達(dá)式2:表達(dá)式3 其中表達(dá)式1是作為邏輯量處理的。 條件表達(dá)式中由于有條件限制,所以應(yīng)先進(jìn)行條件表達(dá)
7、式的運(yùn)算,根據(jù)條件表達(dá)式1表示的邏輯量值選取表達(dá)式2或表達(dá)式3的結(jié)果作為整個(gè)表達(dá)式的值。,其執(zhí)行過程如下。 當(dāng)表達(dá)式1的邏輯量值為1時(shí),選取表達(dá)式2的結(jié)果作為整個(gè)表達(dá)式的值。 當(dāng)表達(dá)式1的邏輯量值為0時(shí),選取表達(dá)式3的結(jié)果作為整個(gè)表達(dá)式的值。 假定a5,b3,則表達(dá)式max (ab)?a:b 的求解過程如下:此表達(dá)式右邊為一條件表達(dá)式,由于條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,應(yīng)先計(jì)算條件表達(dá)式的值,再通過賦值運(yùn)算符把得到的值賦給max。在條件表達(dá)式中,首先計(jì)算表達(dá)式ab的邏輯量值,根據(jù)題意,ab表達(dá)式的邏輯量值為1,則a為條件表達(dá)式的結(jié)果,為5,那么條件表達(dá)式的值為5,可得max的值為5。,6.
8、3 switch語句,如果題目中的多條件是有規(guī)律的,則可以采用switch語句來實(shí)現(xiàn)。switch語句稱為分支語句,又稱為開關(guān)語句。 switch的具體形式如下: switch(表達(dá)式) case 整型常量表達(dá)式1:語句組1 break case 整型常量表達(dá)式2:語句組2 break case 整型常量表達(dá)式n:語句組n break default :語句組n+1 switch,case,default和break都是構(gòu)成多分支語句的關(guān)鍵字。 表示break可有可無。,其中表達(dá)式是任意類型的表達(dá)式,但運(yùn)算結(jié)果會(huì)自動(dòng)轉(zhuǎn)換為整型。整型常量表達(dá)式只能由整型常量構(gòu)成。break語句的作用是結(jié)束swi
9、tch語句,執(zhí)行switch的后續(xù)語句。語句組可以是單條語句,也可以是多條語句,多條語句無需用復(fù)合語句去表示。而在ifelse結(jié)構(gòu)中的語句1和語句2只能是單條語句。 switch語句中的一對(duì)花括號(hào)是必須書寫的,是switch語句構(gòu)成的必要部分。,switch語句的具體執(zhí)行過程為:根據(jù)switch表達(dá)式的值,尋找switch語句的執(zhí)行入口。自上而下和case后的整型常量表達(dá)式的值進(jìn)行比較,如果相等則執(zhí)行其后的語句組,假定入口是整型常量表達(dá)式2,那么該語句執(zhí)行語句組2,當(dāng)語句組2執(zhí)行完畢后,若有break語句,則中斷switch語句的執(zhí)行,否則繼續(xù)執(zhí)行語句組3;如果沒有和表達(dá)式的值相匹配的整型常量
10、表達(dá)式,則執(zhí)行default后的語句組。 case后的整型常量表達(dá)式的值實(shí)際上就是switch后括號(hào)內(nèi)的表達(dá)式的各種可能的取值。如果能窮盡表達(dá)式各種可能的取值,則語句中可省去default分支;否則最好不要省略default,因?yàn)閐efault表示的是switch語句在沒有找到匹配入口時(shí)的語句執(zhí)行入口。,例6.6 輸入一同學(xué)的成績(jī),判斷其成績(jī)等級(jí)。 等級(jí)范圍為: 90 以上 等級(jí)為A 8980 等級(jí)為B 7970 等級(jí)為C 6960 等級(jí)為D 60 以下 等級(jí)為E,假定成績(jī)?yōu)閟core,可以得到表達(dá)式(int)(score/10)。當(dāng)表達(dá)式的值為10和9時(shí),對(duì)應(yīng)于90分以上的條件分支,為8時(shí)對(duì)
11、應(yīng)于8980分段的條件分支,以下的取值和對(duì)應(yīng)的分支可以依次類推。60分以下可用switch中default分支來描述。程序如下: main() float score; scanf(%f, ,score/10中score得到的結(jié)果為浮點(diǎn)型,系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)換為整型。常量表達(dá)式為10的分支,由于與9的分支均為A級(jí),利用switch的特點(diǎn)可以不寫值為10的分支對(duì)應(yīng)的語句。,使用switch語句應(yīng)注意以下幾點(diǎn)。 (1)switch 語句中表達(dá)式可為任意類型,但運(yùn)算結(jié)果為整型。case后的表達(dá)式必須是整型常量表達(dá)式。 (2)每個(gè)case后的常量表達(dá)式的值不能相同,否則會(huì)自相矛盾,無法判斷。 (3)case及default的順序?qū)\(yùn)行結(jié)果不產(chǎn)生影響。 (4)若無break語句進(jìn)行switch語句的強(qiáng)制跳出,則從該處順序執(zhí)行其余語句,直至跳出或執(zhí)行結(jié)束。 (5)case和其后的整型常量表達(dá)式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年戊二酮苯項(xiàng)目發(fā)展計(jì)劃
- 2025年氣象、水文儀器及裝置項(xiàng)目建議書
- 教育技術(shù)推動(dòng)現(xiàn)代課程設(shè)計(jì)的核心力量
- 2025年河北省鹿泉一中物理高二下期末調(diào)研試題含解析
- 中職新媒體營(yíng)銷課件
- 商業(yè)案例分析豐富多樣的學(xué)習(xí)資源助力企業(yè)發(fā)展
- 中職數(shù)學(xué)直線復(fù)習(xí)課件
- 探索教育數(shù)字化轉(zhuǎn)型中的技術(shù)力量
- 教育心理學(xué)在學(xué)生自我管理中的應(yīng)用案例
- 中職教育政策宣講課件
- D500-D505 2016年合訂本防雷與接地圖集
- 圍手術(shù)期患者血液管理指南
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識(shí)講座課件
- 工程結(jié)構(gòu)檢測(cè)鑒定與加固第1章工程結(jié)構(gòu)檢測(cè)鑒定與加固概論課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級(jí)中學(xué)2022年高一新生素質(zhì)測(cè)試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
- 短視頻:策劃+拍攝+制作+運(yùn)營(yíng)課件(完整版)
評(píng)論
0/150
提交評(píng)論