![C語言程序設計:第4章 選擇結構程序設計_第1頁](http://file4.renrendoc.com/view/80a9ae1c6ecf9b56b5770a73de05a176/80a9ae1c6ecf9b56b5770a73de05a1761.gif)
![C語言程序設計:第4章 選擇結構程序設計_第2頁](http://file4.renrendoc.com/view/80a9ae1c6ecf9b56b5770a73de05a176/80a9ae1c6ecf9b56b5770a73de05a1762.gif)
![C語言程序設計:第4章 選擇結構程序設計_第3頁](http://file4.renrendoc.com/view/80a9ae1c6ecf9b56b5770a73de05a176/80a9ae1c6ecf9b56b5770a73de05a1763.gif)
![C語言程序設計:第4章 選擇結構程序設計_第4頁](http://file4.renrendoc.com/view/80a9ae1c6ecf9b56b5770a73de05a176/80a9ae1c6ecf9b56b5770a73de05a1764.gif)
![C語言程序設計:第4章 選擇結構程序設計_第5頁](http://file4.renrendoc.com/view/80a9ae1c6ecf9b56b5770a73de05a176/80a9ae1c6ecf9b56b5770a73de05a1765.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Chap4 選擇結構程序設計2022/9/24School of Computer Science & Technology; Soochow University2本章要點 關系運算符和關系表達式 邏輯運算符和邏輯表達式 if語句 switch語句 選擇結構程序設計2022/9/24School of Computer Science & Technology; Soochow University3關系運算符和關系表達式關系運算符及其優(yōu)先次序 (小于) (大于)= (大于或等于)= (等于)!= (不等于)優(yōu)先級相同(高)優(yōu)先級相同(低)說明:關系運算符的優(yōu)先級低于算術運算符關系運算符的優(yōu)
2、先級高于賦值運算符2022/9/24School of Computer Science & Technology; Soochow University4關系運算符和關系表達式關系表達式用關系運算符將兩個表達式(算術表達式或關系表達式,邏輯表達式,賦值表達式,字符表達式)接起來的式子,稱關系表達式.例:ab,a+bb+c,(a=3)(b=5), ab)(bc)關系表達式的值是一個邏輯值,即“真”或“假”C語言中沒有專用的邏輯值,1代表真,0代表假2022/9/24School of Computer Science & Technology; Soochow University5關系運算符
3、和關系表達式注意結合方向:從左至右C語言中的關系表達式與數學上的表達式含義不同: 例如:1) a=x278是非法的,但在C語言中是合法的關系表達式可以參與算術運算: 例如:int i=1,j=7,z; a=i+(j%4!=0);實數的判別:例如:1.0/3*3= =1.0 不能用: 1.0/3 = 0.33333關系運算符和關系表達式注意:表達式:a=b 和 a=b的區(qū)別例如:假設定義: 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邏輯運算符和邏輯表達式1.邏輯運算符及其優(yōu)先次序(1)& (邏輯與) 相當于其他語言中的AND(2)| (邏輯或) 相當于其他語言中的OR(3)! (邏輯非) 相當于其他語言中的NOT例:a&b 若a,b為真,則a&b為真。 a|b 若a,b之一為真,則a|b為真。 !a 若a為真,則!a為假。優(yōu)先次序:!(非)-&(與)-|(或): 從高到低邏輯運算符中的“&”和“|”低于關系運算符,“!”高于算術運算符202
5、2/9/24School of Computer Science & Technology; Soochow University8邏輯運算符和邏輯表達式 2.邏輯表達式用邏輯運算符將關系表達式或邏輯量連接起來的式 子就是邏輯表達式。邏輯表達式的值應該是一個邏輯量“真”或“假”。例:設a=4,b=5:!a的值為0 a&b的值為1a|b的值為1 !a|b的值為14&0|2的值為1任何非零的數值被認作“真”2022/9/24School of Computer Science & Technology; Soochow University9邏輯運算符和邏輯表達式 例:53&84-!0 自左向右運
6、算 1&0邏輯值為083邏輯值為1表達式值為02022/9/24School of Computer Science & Technology; Soochow University10邏輯運算符和邏輯表達式 系統(tǒng)對邏輯表達式的優(yōu)化:(1)a&b&c 只有a為真時,才需要判斷b的值,只有a和b都為真時,才需要判斷c的值。(2)a|b|c 只要a為真,就不必計算b和C。例:(m=ab)&(n=cd)當a=1,b=2,c=3,d=4,m和n的原值為1時,由于“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);邏輯運算符和邏輯表達式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例: 一些常用的邏輯表達式寫出滿足下列要求的表達式 ch 是小寫英文字母ch = a & ch =13 & age=17非 13=age=17 /數學意義上的表達式判斷年齡小于12或大于65?age65注意:數學意義上的表達式與C語言中的表達式的區(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個數,輸出其中的最大值。#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后面的表達式類型任意語句可以是復合語句 if(x) if(x!=0) if(!x) if(x=0)例 考慮下面程序的輸出結果: #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);運行:Enter a character: The charact
14、er is a control character運行:Enter a character:8 The character is a digit運行: Enter a character: D The character is a capital letter運行: Enter a character: h The character is a lower letter運行: 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內嵌if內嵌ifif (expr1) if (expr2) statement1 else statement2內嵌ifif (expr1) if (expr2) statement1else statement3 內嵌ifif (expr1) statement1else if(expr3) statement3 else statement4內嵌ifIf 語句嵌套:20
16、22/9/24School of Computer Science & Technology; Soochow University22if else的匹配規(guī)則匹配規(guī)則缺省 時,else總是和它上面離它最近的未配對的if配對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”);實現if else 正確配對方法:加 例:if-else匹配2022/9/24School of Computer Science & Technology; Soochow University25改變else 和 if 的配對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例 考慮下面程序輸出結果: 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+的結果 可能性一:(xy)?k+:(x2?y+:x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標準版?zhèn)€人購房合同書
- 2025合伙買車合同
- 2024-2025學年新教材高中生物 第二章 基因和染色體的關系 微專題四 伴性遺傳的解題方法說課稿 新人教版必修第二冊
- 預制樓板施工方案
- 肇慶鋼板樁支護施工方案
- 別墅電梯出售合同范例
- 2023九年級數學下冊 第二十九章 投影與視圖29.1 投影第2課時 正投影說課稿 (新版)新人教版001
- 2024年四年級英語上冊 Unit 3 Let's Go Lesson 15 In the City說課稿 冀教版(三起)
- 自然補償管道施工方案
- 2024年四年級英語上冊 Unit 1 My classroom The fifth period(第五課時)說課稿 人教PEP
- 2025年熱管換熱氣行業(yè)深度研究分析報告
- 職業(yè)學院學生晚出、晚歸、不歸管理辦法
- 2025年陜西西安市經濟技術開發(fā)區(qū)管委會招聘30人歷年高頻重點提升(共500題)附帶答案詳解
- 2025山東能源集團中級人才庫選拔高頻重點提升(共500題)附帶答案詳解
- 《安利蛋白質粉》課件
- 【可行性報告】2024年數據標注與審核項目可行性研究分析報告
- 2024-2025學年滬科版數學七年級上冊期末綜合測試卷(一)(含答案)
- 2025門診護理工作計劃
- 《針法灸法》課件-溫灸器灸
- 電氣領域知識培訓課件
- 山東省部分學校2024-2025學年高一上學期12月選科指導聯(lián)合測試地理試題( 含答案)
評論
0/150
提交評論