




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、邏輯表達與流程控制第1頁,共47頁,2022年,5月20日,19點52分,星期三本章學(xué)習(xí)要點 關(guān)系運算邏輯運算if語句及if語句的嵌套switch語句第2頁,共47頁,2022年,5月20日,19點52分,星期三5.1 關(guān)系運算x = 15比較 x 和 15 的大小比較的結(jié)果: 真 假當(dāng) x 取值9.5時, x = 15的結(jié)果是:?當(dāng) x 取值21.3時, x = 15的結(jié)果是:? 關(guān)系運算符x y x y x = y x != y關(guān)系表達式:用關(guān)系運算符將2個表達式連接起來的式子。如:x = 1區(qū)分= 和=第3頁,共47頁,2022年,5月20日,19點52分,星期三運用關(guān)系表達式表示比較的
2、數(shù)學(xué)式 C關(guān)系表達式x10 x10 x10 x = 10 x = 10 x != 10 x = 10用關(guān)系表達式描述條件判斷 x 是否為負數(shù) x 0判斷 x 是否不為零 x != 0第4頁,共47頁,2022年,5月20日,19點52分,星期三5.2 邏輯運算x=1 關(guān)系運算-1 = x = -1 并且 x = -1 & x 1)&(y1) (x1)|(y1) (x1)!(x1) 即 x= a) & (ch = a & ch = A & ch = Z) 判斷ch 是否為英文字母第9頁,共47頁,2022年,5月20日,19點52分,星期三條件的表示例1 寫出滿足下列條件的C表達式。ch 是空格
3、或者回車。 ch = | ch = nnumber是偶數(shù)。 number % 2 = 0year 是閏年,即 year 能被 4 整除但不能被 100 整除,或 year 能被 400 整除。 (year % 4 = 0 & year % 100 != 0) | (year % 400 = 0) 第10頁,共47頁,2022年,5月20日,19點52分,星期三5.3 選擇控制結(jié)構(gòu)if語句 1 if語句的簡單形式 if(表達式)語句第11頁,共47頁,2022年,5月20日,19點52分,星期三例 2 打印出不及格的成績 第12頁,共47頁,2022年,5月20日,19點52分,星期三例3 輸入
4、一個整數(shù),輸出它的絕對值分析:當(dāng)number = 0時,?第13頁,共47頁,2022年,5月20日,19點52分,星期三#include int main(void) int number; printf(Enter a number: ); scanf(%d, &number); if(number 0) number = -number; printf(The absolute value is %d.n, number); return 0;運行結(jié)果:Enter a number: 10 The absolute value is 10.運行結(jié)果:Enter a number: -30
5、0 The absolute value is 300.第14頁,共47頁,2022年,5月20日,19點52分,星期三2. ifelse結(jié)構(gòu) if(表達式) 語句1else 語句2 第15頁,共47頁,2022年,5月20日,19點52分,星期三解 我們可以使用兩種方法編程: 方法一: 用兩個簡單的if語句實現(xiàn): main( ) float score; scanf(%f, &score); if(score=60.0) printf(score=%5.1f-Passn, score); 例 4 打印成績60分為“Pass”, 否則為“Fail”。第16頁,共47頁,2022年,5月20日,
6、19點52分,星期三方法二: 用ifelse語句實現(xiàn): main( ) float score; scanf(%f, &score); if(score9) y=100; else y=200; 用條件運算符改寫程序段: x=10; y=x9? 100: 200; 第19頁,共47頁,2022年,5月20日,19點52分,星期三例5 輸入x的值, 當(dāng)x0時調(diào)用sqrt(x),否則調(diào)用fabs(x)。 #include#include main( ) float x, y; scanf(%f, &x); y=x0? sqrt(x): fabs(x); printf(x=%f, y=%fn, x,
7、 y); 第20頁,共47頁,2022年,5月20日,19點52分,星期三3 多分支結(jié)構(gòu)與嵌套的 if 語句和switch語句多分支結(jié)構(gòu)有多種形式實現(xiàn)方法:嵌套的 if 語句 else if 語句嵌套的 if - else語句switch語句第21頁,共47頁,2022年,5月20日,19點52分,星期三(1)嵌套的 if 語句if (表達式) 語句1else 語句2 if 語句 if 語句 else if 語句 嵌套的 if - else語句第22頁,共47頁,2022年,5月20日,19點52分,星期三if (表達式1) 語句1else if(表達式2) 語句2else if(表達式n-1
8、)語句n-1else 語句n假表達式1表達式2語句1語句2語句n-1語句n真 表達式n-1假真 假假真 第23頁,共47頁,2022年,5月20日,19點52分,星期三嵌套的 if else 語句if(表達式1)if(表達式2) 語句1else 語句2 elseif(表達式3) 語句3 else 語句4 表達式1表達式3語句4真 假表達式2語句3語句1語句2真 真 假假第24頁,共47頁,2022年,5月20日,19點52分,星期三if (x 1) y = x + 1; else if (x 2) y = x + 2;else y = x + 3; if (x 2) if (x 1) y =
9、x + 1; else y = x + 2;else y = x + 3; x2 x1y=x+1y=x+2真 假真 y=x+3假假 x1 x=90) printf(Very Goodn); else if (score=80) printf(Goodn); else if(score=60) printf(Passn); else printf(Failn); 第29頁,共47頁,2022年,5月20日,19點52分,星期三main( ) float score; scanf(%f, &score); if(score = 80) if(score=90) printf(Very Goodn)
10、; else printf(Goodn); else if(score=60) printf(Passn); else printf(Failn); 方法二: if嵌套結(jié)構(gòu)來實現(xiàn) 第30頁,共47頁,2022年,5月20日,19點52分,星期三 main( ) float score; scanf(%f, &score); if (score=60) printf(Passn); else if(score=80) printf(Goodn); else printf(Very Goodn); 分析改寫成以下形式:第31頁,共47頁,2022年,5月20日,19點52分,星期三(2)switc
11、h語句 處理多分支選擇問題,3種情況1)在switch語句的每個語句段中都使用break語句switch(表達式) case 常量表達式1:語句段1; break; case 常量表達式2:語句段2 ; break; . case 常量表達式n:語句段n ; break; default : 語句段n+1 ; break; 第32頁,共47頁,2022年,5月20日,19點52分,星期三 假設(shè)自動售貨機出售4種商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可樂(cola),售價分別是每份3.0、2.5、4.0和3.5元。在屏幕上顯示以下菜單,用戶可以連續(xù)查
12、詢商品的價格,當(dāng)查詢次數(shù)超過5次時,自動退出查詢;不到5次時,用戶可以選擇退出。當(dāng)用戶輸入編號1-4,顯示相應(yīng)商品的價格;輸入0,退出查詢;輸入其他編號,顯示價格為0。1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 Exit例7 查詢自動售貨機中商品的價格 第33頁,共47頁,2022年,5月20日,19點52分,星期三表達式的值=常量表達式 2 的值表達式語句段1語句段2語句段n語句段n+1表達式的值=常量表達式 1 的值表達式的值=常量表達式 n 的值其他breakbreakbreakbreakswitch
13、 (choice) case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break;第34頁,共47頁,2022年,5月20日,19點52分,星期三#include int main(void) int choice, i; double price; for( i = 1; i = 5; i+) printf(1 Select crisps n); printf(2 Select popcorn n
14、); printf(3 Select chocolate n); printf(4 Select cola n); printf(0 exit n); printf(Enter choice: ); scanf(%d, &choice); if(choice = 0) break; switch (choice) case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break; printf(pric
15、e = %0.1fn, price); printf(Thanks n); 1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 1price = 3.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 7price = 0.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 Exit
16、Enter choice: 0Thanks第35頁,共47頁,2022年,5月20日,19點52分,星期三 2)在switch中不使用breakswitch(表達式) case 常量表達式1:語句段1; case 常量表達式2:語句段2; . case 常量表達式n:語句段n; default : 語句段n+1; 第36頁,共47頁,2022年,5月20日,19點52分,星期三switch (choice) case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0
17、; 表達式的值=常量表達式 2 的值表達式語句段1語句段2語句段n語句段n+1表達式的值=常量表達式 1 的值表達式的值=常量表達式 n 的值其他第37頁,共47頁,2022年,5月20日,19點52分,星期三3)在switch的某些語句段中使用breakswitch (choice) case 1: price=3.0; break; case 2: price=2.5; case 3: price=4.0; break; case 4: price=3.5; default: price=0.0; 第38頁,共47頁,2022年,5月20日,19點52分,星期三 用switch語句輸出學(xué)生
18、的分?jǐn)?shù)等級。設(shè)分?jǐn)?shù)大于等于90分者為A等,70分90分為B等(含70),60分70分為C等(含60),60分以下為D等,分?jǐn)?shù)為浮點數(shù)。 編程思路: switch后的表達式必須是有類型而且求出的結(jié)果應(yīng)當(dāng)是一個個離散的值,而不是一個數(shù)值范圍。應(yīng)該想辦法把一個范圍轉(zhuǎn)換成一個確定的值,這是使用switch語句的關(guān)鍵。 我們可以把分?jǐn)?shù)除以10再取整,即可變成離散的數(shù)值,就可以用switch語句解決了。例8 設(shè)計下面程序第39頁,共47頁,2022年,5月20日,19點52分,星期三 #include main() int i; float score; printf(Input a score:); s
19、canf(%f,&score); i=score/10; switch(i) case 10: case 9: printf(A); break; case 8: case 7:printf(B);break; case 6:printf(C);break; default:printf(D); return 0; 第40頁,共47頁,2022年,5月20日,19點52分,星期三例9:輸入兩個整數(shù)a和b,按從小到大的順序輸出。算法設(shè)計: scanf(“%d%d”,&a,&b); 如果ab,則a和b交換值; printf(“%d%d”, a, b); 5.3 程序舉例 第41頁,共47頁,202
20、2年,5月20日,19點52分,星期三#includemain( ) int a,b,t; printf(請輸入兩個整數(shù):); scanf(%d%d,&a,&b); if(ab) t=a; a=b; b=t; printf(%d %d,a,b); 第42頁,共47頁,2022年,5月20日,19點52分,星期三例10:輸入三個整數(shù)a ,b,c,按從小到大的順序輸出。算法設(shè)計: scanf(“%d%d%d”,&a,&b,&c); 如果ab,則a和b交換值; 如果ac,則a和c交換值; 如果bc,則b和c交換值; printf(“%d%d%d”, a, b,c);第43頁,共47頁,2022年,5月20日,19點52分,星期三#includemain() int a,b,c,t; printf(請輸入三個整數(shù):); scanf(%d%d%d,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班會課件APP制作
- 《貝塞爾函數(shù)及其應(yīng)用》課件
- 一年級學(xué)生安全教育課件
- 禽類屠宰行業(yè)職業(yè)技能提升與培訓(xùn)考核試卷
- 新能源技術(shù)與化妝品產(chǎn)業(yè)發(fā)展考核試卷
- 幼兒園暴風(fēng)雪安全教育
- 糖果企業(yè)市場營銷渠道建設(shè)考核試卷
- 環(huán)境工程專題課件
- 航海英語閱讀與寫作能力測試考核試卷
- 《數(shù)據(jù)庫操作基礎(chǔ)第11講》課件
- 全國行政區(qū)域身份證代碼表(電子表格版)
- 【基于單片機的智能送餐配送車設(shè)計與實現(xiàn)(論文)11000字】
- 英語學(xué)科核心素養(yǎng)ppt課件(PPT 30頁)
- a10c猶豬桿使用介紹
- MapInfo地理數(shù)據(jù)分析和專題圖制作
- 基于大數(shù)據(jù)平臺的數(shù)據(jù)處理服務(wù)項目合同(范文)
- 超星爾雅學(xué)習(xí)通《社會心理學(xué)(南開大學(xué))》章節(jié)測試含答案
- 教科版小學(xué)科學(xué)三年級下冊2《動物的一生》單元復(fù)習(xí)教學(xué)課件
- 設(shè)計師量房表
- 《特種設(shè)備目錄》(2022年第114號)
評論
0/150
提交評論