




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第三章選擇機(jī)構(gòu)程序設(shè)計(jì)第三章選擇機(jī)構(gòu)程序設(shè)計(jì)主要內(nèi)容主要內(nèi)容3.1 3.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式3.2 3.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式3.3 if3.3 if語句語句3.4 switch3.4 switch語句語句3.5 3.5 程序舉例程序舉例23.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式( (一一).).關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序 ( (小于小于) )= ( ( (大于大于) )= (= (大于或等于大于或等于) )= (= (等于等于) )!= (!= (不等于不等于) )優(yōu)先級一樣高優(yōu)先級一樣高優(yōu)先級一樣低優(yōu)先級
2、一樣低闡明:闡明:關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符33.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式( (二二).).關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式可以是算術(shù)表達(dá)式或用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式可以是算術(shù)表達(dá)式或 關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式 接起來的式子,稱關(guān)系表達(dá)式接起來的式子,稱關(guān)系表達(dá)式例:例:ab,a+bb+c,(a=3)(b=5),ab,a+bb+c,(a=3)(b=5),a a b)(bb)(bb的值為的值為
3、“真,表達(dá)式的值為真,表達(dá)式的值為1。41. 1. 有三個(gè)有三個(gè)& & (與與): 兩邊為兩邊為1,結(jié)果為,結(jié)果為1| 或:兩邊有一個(gè)為或:兩邊有一個(gè)為1,結(jié)果為,結(jié)果為1! 非:非非:非1為為0,非,非0為為12. 優(yōu)先級:!的優(yōu)先級高于優(yōu)先級:!的優(yōu)先級高于&和和|邏輯運(yùn)算與其他運(yùn)算相比:邏輯運(yùn)算與其他運(yùn)算相比: 非的優(yōu)先級最高,與和或低非的優(yōu)先級最高,與和或低于其他于其他3. 結(jié)合性:與和或是從左向右,非是從右向左結(jié)合性:與和或是從左向右,非是從右向左( (一一).).邏輯表達(dá)式及其優(yōu)先順序邏輯表達(dá)式及其優(yōu)先順序3.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式53.2 邏輯運(yùn)算符和邏
4、輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式例:設(shè)例:設(shè)a=4a=4,b=5b=5:!a!a的值為的值為0 a&b0 a&b的值為的值為1 1a|ba|b的值為的值為1 !a|b1 !a|b的值為的值為1 14&0|24&0|2的值為的值為1 1任何非零的數(shù)值被認(rèn)作任何非零的數(shù)值被認(rèn)作“真真二二 邏輯表達(dá)式邏輯表達(dá)式2. 表達(dá)式的值為邏輯的表達(dá)式的值為邏輯的1和和0,表示真與假,表示真與假用邏輯運(yùn)算符將關(guān)系運(yùn)算表達(dá)式或邏輯量銜接起來構(gòu)成用邏輯運(yùn)算符將關(guān)系運(yùn)算表達(dá)式或邏輯量銜接起來構(gòu)成邏輯表達(dá)式邏輯表達(dá)式63.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式補(bǔ)充:在邏輯表達(dá)式的求解中,并不是一切的邏輯運(yùn)算符補(bǔ)
5、充:在邏輯表達(dá)式的求解中,并不是一切的邏輯運(yùn)算符都要被執(zhí)行。都要被執(zhí)行。(1)a&b&c (1)a&b&c 只需只需a a為真時(shí),才需求判別為真時(shí),才需求判別b b的值,只需的值,只需a a和和b b都為真時(shí),才需求判別都為真時(shí),才需求判別c c的值。的值。(2)a|b|c (2)a|b|c 只需只需a a為真,就不用判別為真,就不用判別b b和和c c的值,只需的值,只需a a為假,才判別為假,才判別b b。a a和和b b都為假才判別都為假才判別c c例例:(m=ab)&(n=cd)當(dāng)當(dāng)a=1,b=2,c=3,d=4,m和和n的原值為的原值為1時(shí),由于時(shí),由于“ab的值的值為為0,因此,因
6、此m=0,而,而“n=cd不被執(zhí)行,因此不被執(zhí)行,因此n的值不是的值不是0而而仍堅(jiān)持原值仍堅(jiān)持原值1。73.3 if語句語句一一.If.If語句的三種根本方式語句的三種根本方式(1)if (1)if 表達(dá)式表達(dá)式 語句語句; ;例:例: if(xy) printf( if(xy) printf(“%d%d,x);,x);表達(dá)式表達(dá)式語句語句真非真非0假假083.3 if語句語句(2)if(2)if(表達(dá)式表達(dá)式) ) 語句語句1;1; else else 語句語句2;2;例:例: if (xy) printf( if (xy) printf(“%d%d,x);,x); else printf(
7、 else printf(“%d%d,y);,y); 條件條件 語句語句1 語句語句2YN91011123.3 if語句語句(3)if(3)if表達(dá)式表達(dá)式1 1語句語句1 1 else if( else if(表達(dá)式表達(dá)式2)2)語句語句2 2 else if( else if(表達(dá)式表達(dá)式3)3)語句語句3 3 else if( else if(表達(dá)式表達(dá)式m)m)語句語句m m else else 語句語句n n13143.3 if語句語句二二.If.If語句的嵌套語句的嵌套 格式格式: if表達(dá)式表達(dá)式 if( 表達(dá)式表達(dá)式1 語句語句1; else 語句語句2 ; else if (
8、表達(dá)式表達(dá)式2語句語句3; else 語句語句4;判別表達(dá)式的值,假設(shè)為非判別表達(dá)式的值,假設(shè)為非0,再判別表達(dá)式,再判別表達(dá)式1的值,的值,非非0執(zhí)行語句執(zhí)行語句1,否那么執(zhí)行語句,否那么執(zhí)行語句2。假設(shè)表達(dá)式的值。假設(shè)表達(dá)式的值為為0,再判別表達(dá)式,再判別表達(dá)式2的值,非的值,非0執(zhí)行語句執(zhí)行語句3,否那么執(zhí),否那么執(zhí)行語句行語句4。155.3 if語句語句表達(dá)式表達(dá)式語句語句1語句語句2語句語句3語句語句4表達(dá)式表達(dá)式2表達(dá)式表達(dá)式1111000在一個(gè)在一個(gè)if構(gòu)造中,包含一個(gè)或多個(gè)構(gòu)造中,包含一個(gè)或多個(gè)if構(gòu)造構(gòu)造1617183.3 if語句語句匹配規(guī)那么:匹配規(guī)那么:elseelse
9、總是與它上面的,最近的,一致復(fù)合語句中的,未配總是與它上面的,最近的,一致復(fù)合語句中的,未配對的對的ifif語句配對。語句配對。例:例:If( )If( )if( ) if( ) 語句語句1;1;elseelseif( ) if( ) 語句語句2;2;else else 語句語句3;3;例:例:If( )If( )if( ) if( ) 語句語句1;1;elseelseif( ) if( ) 語句語句2;2;else else 語句語句3;3;當(dāng)當(dāng)ifif和和elseelse數(shù)目不同時(shí),可以加花括號來確定配對關(guān)系。數(shù)目不同時(shí),可以加花括號來確定配對關(guān)系。193.3 if語句語句1 1、條件運(yùn)算
10、符、條件運(yùn)算符 ? ?和和: ,: ,它們與三個(gè)操作數(shù)組組成三元運(yùn)算。它們與三個(gè)操作數(shù)組組成三元運(yùn)算。2 2、 方式為方式為: : ? ? :33 3、 求值規(guī)那么和表達(dá)式的值求值規(guī)那么和表達(dá)式的值: : 真真( (非非0),0),求解表達(dá)式求解表達(dá)式2 2 求解表達(dá)式求解表達(dá)式1 1 條件表達(dá)式條件表達(dá)式的值的值 假假(0),(0),求解表達(dá)式求解表達(dá)式3 3例如例如: : int max,a=5;b=3; int max,a=5;b=3;max=ab?a:b maxmax=ab?a:b max及賦值表達(dá)式的值均為及賦值表達(dá)式的值均為5;5; ab?a:b+1 ab時(shí)將時(shí)將a的值賦給的值賦給
11、max,當(dāng),當(dāng)ab時(shí)將時(shí)將b的值賦給的值賦給max,可以看到無論可以看到無論ab能否滿足,都是向同一個(gè)變量賦值。能否滿足,都是向同一個(gè)變量賦值。 可以用下面的條件運(yùn)算符來處置:可以用下面的條件運(yùn)算符來處置: ? ;213.3 if語句語句例例5.45.4輸入一個(gè)字符,判別它能否大寫字母,假設(shè)是,將輸入一個(gè)字符,判別它能否大寫字母,假設(shè)是,將它轉(zhuǎn)換成小寫字母;假設(shè)不是,不轉(zhuǎn)換。然后輸出最后它轉(zhuǎn)換成小寫字母;假設(shè)不是,不轉(zhuǎn)換。然后輸出最后得到的字符。得到的字符。 #include #include void main ( ) void main ( ) char ch; char ch; scan
12、f(%c,& ch); scanf(%c,& ch); ch=(ch=A& ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch); printf(%cn,ch); 假設(shè)字符變量ch的值為大寫字母,那么條件表達(dá)式的值為,即相應(yīng)的小寫字母。假設(shè)ch的值不是大寫字母,那么條件表達(dá)式的值為,即不進(jìn)展轉(zhuǎn)換。 222324252627282930313233343536373839405.4 switch語句語句格式:格式:switch(表達(dá)式表達(dá)式) case 常量表達(dá)式常量表達(dá)式1: 語句語句1 case 常量表達(dá)式常量表達(dá)式2: 語句語句2 . case 常量表達(dá)式常量表達(dá)式
13、n: 語句語句n default: 語句語句n+1 先計(jì)算表達(dá)式的值,判別此值能否先計(jì)算表達(dá)式的值,判別此值能否與某個(gè)常量表達(dá)式的值匹配,假設(shè)與某個(gè)常量表達(dá)式的值匹配,假設(shè)有,控制轉(zhuǎn)向其后相應(yīng)的語句,假有,控制轉(zhuǎn)向其后相應(yīng)的語句,假設(shè)無,檢查設(shè)無,檢查 default。多重分支的條件多重分支的條件語句語句 switch語句1常量常量1?計(jì)算表達(dá)式計(jì)算表達(dá)式的值的值語句語句2常量常量2語句語句n+1default?41 補(bǔ)充:補(bǔ)充:后面括弧內(nèi)的后面括弧內(nèi)的“表達(dá)式,表達(dá)式, 規(guī)范允許規(guī)范允許 它為任何類型。它為任何類型。(2) 當(dāng)表達(dá)式的值與某一個(gè)后面的常量表達(dá)式的值相當(dāng)表達(dá)式的值與某一個(gè)后面的
14、常量表達(dá)式的值相 等時(shí),就執(zhí)行此后面的語句,假設(shè)一切的等時(shí),就執(zhí)行此后面的語句,假設(shè)一切的 中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行 后面的語句。后面的語句。(3) 每一個(gè)的常量表達(dá)式的值必需互不一樣,否那么就每一個(gè)的常量表達(dá)式的值必需互不一樣,否那么就 會(huì)出現(xiàn)相互矛盾的景象對表達(dá)式的同一個(gè)值,有兩種或會(huì)出現(xiàn)相互矛盾的景象對表達(dá)式的同一個(gè)值,有兩種或 多種執(zhí)行方案。多種執(zhí)行方案。5.4 switch語句語句425.4 switch語句語句(4) (4) 各個(gè)和的出現(xiàn)次序不影響執(zhí)行結(jié)各個(gè)和的出現(xiàn)次序不影響執(zhí)行結(jié) 果。果。 (5) (5)
15、 執(zhí)行完一個(gè)后面的語句后,流程控制轉(zhuǎn)移到下一執(zhí)行完一個(gè)后面的語句后,流程控制轉(zhuǎn)移到下一 個(gè)繼續(xù)執(zhí)行。在執(zhí)行語句時(shí),根據(jù)個(gè)繼續(xù)執(zhí)行。在執(zhí)行語句時(shí),根據(jù)后面表達(dá)式的值找到匹配的入口標(biāo)號,就從此標(biāo)后面表達(dá)式的值找到匹配的入口標(biāo)號,就從此標(biāo)號開場執(zhí)行下去,不再進(jìn)展判別。應(yīng)該在執(zhí)行一個(gè)分號開場執(zhí)行下去,不再進(jìn)展判別。應(yīng)該在執(zhí)行一個(gè)分支后支后, ,可以用一個(gè)語句來終止可以用一個(gè)語句來終止switchswitch語句的執(zhí)行。語句的執(zhí)行。 (6) (6) 多個(gè)可以共用一組執(zhí)行語句。多個(gè)可以共用一組執(zhí)行語句。 435.5 程序舉例程序舉例例例5 56 6 求方程的解。求方程的解。根本的算法:根本的算法: ,不是
16、二次方程。,不是二次方程。 ,有兩個(gè)相等實(shí)根。,有兩個(gè)相等實(shí)根。 ,有兩個(gè)不等實(shí)根。,有兩個(gè)不等實(shí)根。 ,有兩個(gè)共軛復(fù)根。,有兩個(gè)共軛復(fù)根。445.5 程序舉例程序舉例 程序如下:#include #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart;scanf(%f,%f,%f,&a,&b,&c);printf(the equation );if(fabs(a)=1e-6)printf(is not a quadraticn);else disc=b*b-4*a*c;if(fabs(disc)1e-6) else if(disc1e-6)x1=(-b+sqrt(disc)/(2x1=(-b+sqrt(disc)/(2* *a);a); x2=(-b-sqrt(disc)/(2 x2=(-b-sqrt(disc)/(2* *a);a); printf( printf(“has distinct real roots:%8.4f has distinct real roots:%8.4f and %8.4fnand %8.4fn,x1,x2);,x1,x2); else elserealpart=-b/(2realpart=-b/(2* *a);a); imagpart=sqrt(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度安全生產(chǎn)法律法規(guī)培訓(xùn)與咨詢服務(wù)協(xié)議
- 廠房搭建合同范本版
- 俱樂部股東合作合同范本
- 2025年江蘇省安全員-C證(專職安全員)考試題庫
- 頂管周圍壓密注漿施工方案
- 不銹鋼梯形橋架施工方案
- 企業(yè)綠化實(shí)施合同范本
- 2025天津市安全員《A證》考試題庫
- 公司經(jīng)營 管理 合同范本
- 二年級口算練習(xí)題集100道
- 醫(yī)院護(hù)理人文關(guān)懷實(shí)踐規(guī)范專家共識課件
- DeepSeek在自然災(zāi)害預(yù)警中的潛力
- 2025年專利技術(shù)保密協(xié)議書模板
- 個(gè)人合伙開店合同范本
- 生而為贏自燃成陽-開學(xué)第一課發(fā)言稿
- 2025年中國國投高新產(chǎn)業(yè)投資集團(tuán)招聘筆試參考題庫含答案解析
- 2024-2025學(xué)年小學(xué)美術(shù)一年級下冊(2024)嶺南版(2024)教學(xué)設(shè)計(jì)合集
- 《研學(xué)旅行課程設(shè)計(jì)》課件-研學(xué)課程設(shè)計(jì)計(jì)劃
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計(jì)改
- 中醫(yī)痹癥-課件
- 電梯維修作業(yè)指導(dǎo)書
評論
0/150
提交評論