




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 選擇結(jié)構(gòu)本章要點(diǎn)本章要點(diǎn):4.1 關(guān)系運(yùn)算和邏輯運(yùn)算4.2 if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.3 條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)4.4 switch語句以及用switch語句和break語句構(gòu)成的選擇結(jié)構(gòu)4.5 語句標(biāo)號和goto語句4.1 關(guān)系運(yùn)算和邏輯運(yùn)算4.1.1 c語言中的邏輯值c語言中,參與邏輯運(yùn)算的量為非零值或整數(shù)零,非零值和整數(shù)零分別表示運(yùn)算量為“真”或“假”。邏輯運(yùn)算的結(jié)果值,即邏輯表達(dá)式的值應(yīng)該是一個邏輯值“真”或“假”。c語言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時,以數(shù)值1代表“真”,以0代表“假”,但在判斷一個量是否為“真”時,以0代表“假”,以非0代表“真”。4.1.2 關(guān)
2、系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算實(shí)際上就是“比較運(yùn)算”,將兩個數(shù)進(jìn)行比較,判斷比較的結(jié)果是否符合指定的條件。1關(guān)系運(yùn)算符關(guān)于關(guān)系運(yùn)算符的說明:(1)表4-1中前4種運(yùn)算符(、=)的優(yōu)先級別相同,后兩種也相同。前4種優(yōu)先級別高于后兩種。如,“”優(yōu)先級別高于“!=”。(2)關(guān)系運(yùn)算符與算術(shù)運(yùn)算符、賦值運(yùn)算符的優(yōu)先級關(guān)系如下:算術(shù)運(yùn)算符(高)關(guān)系運(yùn)算符(中)賦值運(yùn)算符(低)即:算術(shù)運(yùn)算符優(yōu)先級別高于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符優(yōu)先級別又高于賦值運(yùn)算符。(3)關(guān)系運(yùn)算符的結(jié)合方向是“自左向右”。c語言有六種關(guān)系運(yùn)算符,如表4-1所示。表4.1 c語言中的關(guān)系運(yùn)算符運(yùn)算符名稱優(yōu)先次序小于優(yōu)先級相同(高)大于=大于
3、或等于=(連續(xù)兩個=)等于優(yōu)先級相同(低)!=不等于2關(guān)系表達(dá)式及關(guān)系表達(dá)式的值用關(guān)系運(yùn)算符將兩個表達(dá)式(算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式等)連接起來的式子,稱關(guān)系表達(dá)式。例如,a=b,a= =c等。在c語言中,關(guān)系表達(dá)式的結(jié)果值為1或0。當(dāng)關(guān)系表達(dá)式成立時,其結(jié)果值為1,否則,其值為0。若a=10,b=6,表達(dá)式a=b為“真“,其值為1。當(dāng)關(guān)系運(yùn)算符兩邊的值類型不一致時,系統(tǒng)將自動進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換規(guī)則與雙目運(yùn)算中的類型轉(zhuǎn)換規(guī)則相同。關(guān)系運(yùn)算示例:試求x=531的值。分析:x=531相當(dāng)于:x=(53)1 =11 =0故x的值為0。關(guān)系表達(dá)式主要用于選擇結(jié)構(gòu)中的條件判斷
4、。重點(diǎn)提示重點(diǎn)提示:表示“等于”關(guān)系的運(yùn)算符“= =”和“不等于”關(guān)系的運(yùn)算符“!=”與數(shù)學(xué)中的表示方法不同。在使用它們時請予以注意,以免寫錯關(guān)系運(yùn)算符而導(dǎo)致錯誤的結(jié)果。例如,欲判斷x是否等于0,如果寫成:x=0就不是判斷x是否等于0的含義了,而成了把0賦值給變量x。正確的寫法應(yīng)為:x= =0。4.1.3 邏輯運(yùn)算符和邏輯表達(dá)式1c語言中的邏輯運(yùn)算符關(guān)系表達(dá)式只適于描述單一的條件,對于較復(fù)雜的復(fù)合條件就需要將若干個關(guān)系表達(dá)式連接起來才能描述,如描述“x大于0且不等于2”,就需要將兩個關(guān)系表達(dá)式x0和x!=2連接起來:x0&x!=2。其中“&”是c語言中的邏輯運(yùn)算符。c語言提供了
5、三種邏輯運(yùn)算符,如表4.2所示。表4.2 c語言中的邏輯運(yùn)算符運(yùn)算符名稱示例示例說明說明優(yōu)先次序!邏輯非!aa非單目運(yùn)算符高低&邏輯與a&ba與b雙目運(yùn)算符|邏輯或a|ba或b雙目運(yùn)算符關(guān)于邏輯運(yùn)算符的說明:(1)邏輯運(yùn)算符的優(yōu)先次序如下:!(高)(高)&(中)(中)|(低)(低)(2)邏輯運(yùn)算符具有自左向右的結(jié)合性(3)邏輯運(yùn)算符與賦值運(yùn)算符、關(guān)系運(yùn)算符、算術(shù)運(yùn)算符的優(yōu)先次序如下:(由高到低) ?。ㄟ壿嫹牵。ㄟ壿嫹牵┧阈g(shù)運(yùn)算算術(shù)運(yùn)算關(guān)系運(yùn)算關(guān)系運(yùn)算&(邏(邏輯與)輯與)|(邏輯或)(邏輯或)賦值運(yùn)算賦值運(yùn)算例如:a=b) & (xy) 可以寫為:a=
6、b&xy(a= =b)|(x= =y) 可以寫為:a= =b|x= =y(!a)|(a=b) 可以寫為:!a|a=b2邏輯表達(dá)式和邏輯表達(dá)式的值用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯值連接起來的式子稱邏輯表達(dá)式。一個邏輯表達(dá)式中可以包含多個邏輯運(yùn)算符,如xy&a=5&2|6=5,在關(guān)系運(yùn)算符=兩側(cè)的8和5作為數(shù)值參加關(guān)系運(yùn)算,8=5的值為1。 再進(jìn)行1&2|65-!0運(yùn)算。自左至右掃描求解,&兩側(cè)的1和2作為邏輯運(yùn)算對象,因?yàn)閰⒓舆\(yùn)算的皆為非0,故結(jié)果為1。 接下來進(jìn)行1|65-!0運(yùn)算。6的左側(cè)為|運(yùn)算符,右側(cè)為運(yùn)算符,根據(jù)優(yōu)先級別,應(yīng)先進(jìn)行的運(yùn)算。即先進(jìn)行6
7、5-!0運(yùn)算?,F(xiàn)在5的左側(cè)為運(yùn)算符,右側(cè)為-運(yùn)算符,而-優(yōu)先于,因此,應(yīng)先進(jìn)行5-!0的運(yùn)算。又由于!的優(yōu)先級別最高,故先進(jìn)行!0的運(yùn)算,得結(jié)果1。 然后進(jìn)行5-1運(yùn)算。得結(jié)果為4。 下面再進(jìn)行6b) printf(%d%dn,a,b); else printf(%d%dn,a,b); else printf(%d= =%dn,a,b);程序運(yùn)行結(jié)果為:please enter two integers:3,57357please enter two integers:9,-69-6please enter two integers:456,456456= =456里層的ifelse語句是外層
8、條件語句if下的嵌套語句,它雖然占據(jù)多個書寫行,卻不是復(fù)合語句,可以作為一個語句看待,因此無須用一對大括號括起來。重點(diǎn)提示重點(diǎn)提示:在嵌套內(nèi)的if語句既可以是if語句形式也可以是ifelse語句形式,這就會出現(xiàn)多個if和多個else重疊的情況。此時要特別注意if和else的配對問題。if和else配對規(guī)則為:else總是與它前一個最近的if配對。4.3 條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)對于有些選擇分支結(jié)構(gòu),c語言另外還提供了一個特殊的運(yùn)算符條件運(yùn)算符,由此構(gòu)成的表達(dá)式也可以形成簡單的選擇結(jié)構(gòu),這種選擇結(jié)構(gòu)能以表達(dá)式的形式內(nèi)嵌在允許出現(xiàn)表達(dá)式的地方,使得可以根據(jù)不同的條件使用不同的數(shù)據(jù)參與運(yùn)算。1條件運(yùn)
9、算符條件運(yùn)算符由兩個符號“?”和“:”組成,要求有3個操作對象,稱三目(元)運(yùn)算符,它是c語言中唯一的三目運(yùn)算符。2條件表達(dá)式條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3它的執(zhí)行過程如圖4.5所示。以下是幾點(diǎn)說明:(1)通過情況下,表達(dá)式1是關(guān)系表達(dá)式或邏輯表達(dá)式,用于描述條件表達(dá)式中的條件,表達(dá)式2和表達(dá)式3可以是常量、變量或表達(dá)式。(2)條件表達(dá)式的執(zhí)行順序?yàn)椋合惹蠼獗磉_(dá)式1,若值為非0,表示條件為真,則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值;若表達(dá)式1的值為0,表示條件為假,則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。(3)在程序中,通過把條件表達(dá)式的值直
10、接賦予某個變量。例如:min=(a0?1:x0?1:(x60n); break; 在a、b兩種情況下,均執(zhí)行相同的語句,即輸出“60”。(5)在switch語句中,只有最后一個分支(default)中的break語句的存在于否不影響執(zhí)行結(jié)果。因?yàn)闆]有這個break語句,執(zhí)行該分支的所有語句后也會自動退出switch語句。而其余各分支中的break語句有與無時的流程是完全不同的。例如在上例中,如果casea、b后面沒有break語句,則當(dāng)grade=a時,程序從printf(85100n)開始執(zhí)行,輸出結(jié)果為: 85100 7084 error這是因?yàn)閏ase后面的常量表達(dá)式實(shí)際上只起語句標(biāo)號作
11、用,而不起條件判斷作用,即“只是開始執(zhí)行處的入口標(biāo)號”。因此,一旦與switch后面圓括號中表達(dá)式的值匹配,就從此標(biāo)號處開始執(zhí)行,而且執(zhí)行完一個case后面的語句后,若沒遇到break語句,就自動進(jìn)入下一個case繼續(xù)執(zhí)行,而不再判斷是否與之匹配,直到遇到break語句才停止執(zhí)行,退出break語句。因此,若想執(zhí)行一個case分支后立即跳出switch語句,就必須在此分支的最后添加一個break語句。重點(diǎn)提示重點(diǎn)提示:在switch語句中,default總是放在最后,這時,default后不需要break語句。因此只有最后一個分支(default)中的break語句的存在于否不影響執(zhí)行結(jié)果。4.5 語句標(biāo)號和goto語句4.5.1 語句標(biāo)號在c語言中,語句標(biāo)號不必特殊加以定義,標(biāo)號可以是任意合法的標(biāo)識符,當(dāng)在標(biāo)識符后面加一個冒號,該標(biāo)識符就成為一個語句標(biāo)號。如student:等。注意,c語言中,語句標(biāo)號必須是標(biāo)識符,而不能是數(shù)值常量形式,標(biāo)號可以和變量同名。通常,標(biāo)號用作goto語句的轉(zhuǎn)向目標(biāo)。如:goto state;c語言中,可以在任何語句前
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師教育教學(xué)反思與社會支持機(jī)制的結(jié)合試題及答案
- 生態(tài)修復(fù)工程2025年生物多樣性保護(hù)與生態(tài)修復(fù)工程審計(jì)報(bào)告
- 環(huán)境保護(hù)概論試題及答案
- 濰坊地理期末試題及答案
- 家具設(shè)計(jì)中創(chuàng)意表達(dá)與實(shí)現(xiàn)試題及答案
- 物理學(xué)各分支特點(diǎn)分析試題及答案
- 針對心血管疾病的2025年互聯(lián)網(wǎng)醫(yī)療平臺在線問診報(bào)告
- 工業(yè)廢氣凈化處理技術(shù)2025年市場潛力深度研究報(bào)告
- 沉浸式戲劇與科技融合:2025年創(chuàng)新創(chuàng)作與市場推廣前景報(bào)告
- 鐵嶺師范高等??茖W(xué)?!兑苿踊ヂ?lián)網(wǎng)應(yīng)用開發(fā)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- (高清版)DB51∕T 1292-2011 牧草種質(zhì)資源田間鑒定與評價(jià)技術(shù)規(guī)程
- 三農(nóng)項(xiàng)目申請操作流程指南
- 組織行為學(xué)(對外經(jīng)濟(jì)貿(mào)易大學(xué))知到課后答案智慧樹章節(jié)測試答案2025年春對外經(jīng)濟(jì)貿(mào)易大學(xué)
- 貼太陽膜知識培訓(xùn)課件
- 面粉廠粉塵防爆培訓(xùn)課件
- 1000道二年級數(shù)學(xué)口算練習(xí)題
- 第16課《有為有不為 》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 海上絲綢之路(浙江海洋大學(xué))學(xué)習(xí)通測試及答案
- 2024版股權(quán)分配與員工持股計(jì)劃協(xié)議書模板3篇
- DB37T 5061-2016 住宅小區(qū)供配電設(shè)施建設(shè)標(biāo)準(zhǔn)
- 中建中建軌道物流、氣動物流施工方案范本
評論
0/150
提交評論