版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Chap4 選擇結(jié)構(gòu)程序設(shè)計(jì)2022/9/24School of Computer Science & Technology; Soochow University2本章要點(diǎn) 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 邏輯運(yùn)算符和邏輯表達(dá)式 if語句 switch語句 選擇結(jié)構(gòu)程序設(shè)計(jì)2022/9/24School of Computer Science & Technology; Soochow University3關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符及其優(yōu)先次序 (小于) (大于)= (大于或等于)= (等于)!= (不等于)優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)說明:關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)
2、先級(jí)高于賦值運(yùn)算符2022/9/24School of Computer Science & Technology; Soochow University4關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)表達(dá)式或關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式)接起來的式子,稱關(guān)系表達(dá)式.例:ab,a+bb+c,(a=3)(b=5), ab)(bc)關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”C語言中沒有專用的邏輯值,1代表真,0代表假2022/9/24School of Computer Science & Technology; Soochow University5關(guān)系運(yùn)算符
3、和關(guān)系表達(dá)式注意結(jié)合方向:從左至右C語言中的關(guān)系表達(dá)式與數(shù)學(xué)上的表達(dá)式含義不同: 例如:1) a=x278是非法的,但在C語言中是合法的關(guān)系表達(dá)式可以參與算術(shù)運(yùn)算: 例如:int i=1,j=7,z; a=i+(j%4!=0);實(shí)數(shù)的判別:例如:1.0/3*3= =1.0 不能用: 1.0/3 = 0.33333關(guān)系運(yùn)算符和關(guān)系表達(dá)式注意:表達(dá)式:a=b 和 a=b的區(qū)別例如:假設(shè)定義: int a=3, b=5;if(a=b) printf(“a和b相等n”); else printf(“a和b不相等n”);if(a=b) printf(“a和b相等n”); else printf(“a和b
4、不相等n”);a=?b=?55a=?b=?352022/9/24School of Computer Science & Technology; Soochow University7邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符及其優(yōu)先次序(1)& (邏輯與) 相當(dāng)于其他語言中的AND(2)| (邏輯或) 相當(dāng)于其他語言中的OR(3)! (邏輯非) 相當(dāng)于其他語言中的NOT例:a&b 若a,b為真,則a&b為真。 a|b 若a,b之一為真,則a|b為真。 !a 若a為真,則!a為假。優(yōu)先次序:!(非)-&(與)-|(或): 從高到低邏輯運(yùn)算符中的“&”和“|”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符202
5、2/9/24School of Computer Science & Technology; Soochow University8邏輯運(yùn)算符和邏輯表達(dá)式 2.邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式 子就是邏輯表達(dá)式。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。例:設(shè)a=4,b=5:!a的值為0 a&b的值為1a|b的值為1 !a|b的值為14&0|2的值為1任何非零的數(shù)值被認(rèn)作“真”2022/9/24School of Computer Science & Technology; Soochow University9邏輯運(yùn)算符和邏輯表達(dá)式 例:53&84-!0 自左向右運(yùn)
6、算 1&0邏輯值為083邏輯值為1表達(dá)式值為02022/9/24School of Computer Science & Technology; Soochow University10邏輯運(yùn)算符和邏輯表達(dá)式 系統(tǒng)對(duì)邏輯表達(dá)式的優(yōu)化:(1)a&b&c 只有a為真時(shí),才需要判斷b的值,只有a和b都為真時(shí),才需要判斷c的值。(2)a|b|c 只要a為真,就不必計(jì)算b和C。例:(m=ab)&(n=cd)當(dāng)a=1,b=2,c=3,d=4,m和n的原值為1時(shí),由于“ab”的值為0,因此m=0,而“n=cd”不被執(zhí)行,因此n的值不是0而仍保持原值1。2022/9/24School of Computer
7、Science & Technology; Soochow University11例如:main()int a,b,c;a=b=c=-1;+a|+b&+c;printf(“a=%d,b=%d,c=%dn”,a,b,c);a=b=c=-1;a+&b+|c+;printf(“a=%d,b=%d,c=%dn”,a,b,c);a=b=c=-1;+a&+b&+c;printf(“a=%d,b=%d,c=%dn”,a,b,c);邏輯運(yùn)算符和邏輯表達(dá)式a=0,b=0,c=-1a=0,b=0,c=-1a=0,b=-1,c=-12022/9/24School of Computer Science & Tec
8、hnology; Soochow University12例: 一些常用的邏輯表達(dá)式寫出滿足下列要求的表達(dá)式 ch 是小寫英文字母ch = a & ch =13 & age=17非 13=age=17 /數(shù)學(xué)意義上的表達(dá)式判斷年齡小于12或大于65?age65注意:數(shù)學(xué)意義上的表達(dá)式與C語言中的表達(dá)式的區(qū)別2022/9/24School of Computer Science & Technology; Soochow University15if 語句if 語句的三種形式:形式一:格式:if (expression) statement執(zhí)行過程:例:if(xy) printf(“%d”,x)
9、;exprstatement非0=02022/9/24School of Computer Science & Technology; Soochow University16if 語句if 語句的三種形式:形式二:格式:if (expression) statement1 else statement2執(zhí)行過程:例:if (xy) max=x; else max=y;exprstatement1statement2非0=02022/9/24School of Computer Science & Technology; Soochow University17if 語句if 語句的三種形式:
10、形式三:格式: 執(zhí)行過程:expr1statement1非0=0expr2expr3statementnstatement3statement2非0非0=0=0if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn 例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; els
11、e index=0; 2022/9/24School of Computer Science & Technology; Soochow University18例: 求最大值輸入3個(gè)數(shù),輸出其中的最大值。#include void main( ) int a, b, c, max; printf(input a, b, c:n); scanf(%d%d%d, &a, &b, &c); max = a; if(max b) max = b; if(max c) max = c; printf(max is %dn, max);a maxbcmaxmax2022/9/24School of Co
12、mputer Science & Technology; Soochow University19如:if(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); if(a) printf(“%d”,a);說明:if后面的表達(dá)式類型任意語句可以是復(fù)合語句 if(x) if(x!=0) if(!x) if(x=0)例 考慮下面程序的輸出結(jié)果: #include main() int x,y; scanf(“%d,%d”,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y);Compile Er
13、ror!If 語句的說明2022/9/24School of Computer Science & Technology; Soochow University20/*ch4_3.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0&c=A&c=a&c=z) printf(The character is a lower lettern); else printf(The character is other charactern);運(yùn)行:Enter a character: The charact
14、er is a control character運(yùn)行:Enter a character:8 The character is a digit運(yùn)行: Enter a character: D The character is a capital letter運(yùn)行: Enter a character: h The character is a lower letter運(yùn)行: Enter a character:F1 The character is other character例 判斷輸入字符種類2022/9/24School of Computer Science & Technolog
15、y; Soochow University21if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4內(nèi)嵌if內(nèi)嵌ifif (expr1) if (expr2) statement1 else statement2內(nèi)嵌ifif (expr1) if (expr2) statement1else statement3 內(nèi)嵌ifif (expr1) statement1else if(expr3) statement3 else statement4內(nèi)嵌ifIf 語句嵌套:20
16、22/9/24School of Computer Science & Technology; Soochow University22if else的匹配規(guī)則匹配規(guī)則缺省 時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)if()if()if()else.else.else.2022/9/24School of Computer Science & Technology; Soochow University23else 和 if 的匹配if (exp_1) if(exp_2) statement_1else statement_2elseif(exp_3) statement_3else
17、statement_4if (exp_1) if(exp_2) statement_1elseif(exp_3) statement_3else statement_4注意: else 與最靠近它的、沒有與別的 else 匹配過的 if 匹配if (exp_1) if(exp_2) statement_1elseif(exp_3) statement_3else statement_42022/9/24School of Computer Science & Technology; Soochow University24例: if (a=b) if(b=c) printf(“a=b=c”);
18、 else printf(“a!=b”);修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);實(shí)現(xiàn)if else 正確配對(duì)方法:加 例:if-else匹配2022/9/24School of Computer Science & Technology; Soochow University25改變else 和 if 的配對(duì)if (exp_1) if(exp_2) statement_1elseif(exp_3) statement_3else statement_4if (exp_1) if(exp_2) statement_1e
19、lseif(exp_3) statement_3else statement_4if (exp_1) if(exp_2) statement_1elseif(exp_3) statement_3else statement_4if (exp_1) if(exp_2) statement_1elseelseif(exp_3) statement_3else statement_42022/9/24School of Computer Science & Technology; Soochow University26例 考慮下面程序輸出結(jié)果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(a0) ? x+2 : x*x;if ( x0 ) y=x+2;else y=x*x; x+2 x0y = x2 xy?k+:x2?y+:x+的結(jié)果 可能性一:(xy)?k+:(x2?y+:x
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外出創(chuàng)業(yè)租房合同范例
- 快遞代收合同范例
- 公司產(chǎn)權(quán)商鋪出售合同模板
- 中藥飲片行業(yè)探析
- 家居裝修公司合同范例
- 建設(shè)工程合同范例共幾版
- 個(gè)人茶莊轉(zhuǎn)讓合同范例
- 工程施工正式合同范例
- 劇組法律顧問合同范例
- 產(chǎn)房租賃合同范例
- 大數(shù)據(jù)專業(yè)職業(yè)規(guī)劃
- 任務(wù)驅(qū)動(dòng)啟發(fā)學(xué)生自學(xué)-任務(wù)驅(qū)動(dòng)下的小學(xué)語文教學(xué)研究 論文
- 吸入麻醉聯(lián)合神阻滯在骨科手術(shù)中應(yīng)用
- 人教版九年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷及答案解析(共5套)
- 逆境中的積極心態(tài)與成就
- 山東省2023年高考物理模擬(一模、二模)試題知識(shí)點(diǎn)訓(xùn)練:電磁學(xué)解答題
- 門診健康宣教 課件
- 學(xué)生戲劇表演
- 人工智能基礎(chǔ)及應(yīng)用(微課版) 課件 第6章 人工神經(jīng)網(wǎng)絡(luò)
- 計(jì)量器具管理課件
- 2022年《系統(tǒng)集成項(xiàng)目管理工程師》案例分析真題
評(píng)論
0/150
提交評(píng)論