




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
邏輯表達與流程控制第一頁,共四十七頁,2022年,8月28日
本章學(xué)習(xí)要點
關(guān)系運算邏輯運算if語句及if語句的嵌套switch語句
第二頁,共四十七頁,2022年,8月28日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<yx<=yx==yx>yx>=yx!=y關(guān)系表達式:用關(guān)系運算符將2個表達式連接起來的式子。如:x<=1區(qū)分=和==
第三頁,共四十七頁,2022年,8月28日運用關(guān)系表達式表示比較的數(shù)學(xué)式C關(guān)系表達式x≤10x≥10x≠10x=10x<=10x>=10x!=10x==10用關(guān)系表達式描述條件判斷x是否為負數(shù)
x<0判斷x是否不為零
x!=0
第四頁,共四十七頁,2022年,8月28日5.2邏輯運算x<=1關(guān)系運算-1<=x<=10-11 x
x>=-1并且
x<=1x>=-1&&x<=1
第五頁,共四十七頁,2022年,8月28日3種邏輯運算符邏輯與&&
邏輯或||邏輯非!XX&&
YYXYX||
YX!
X
第六頁,共四十七頁,2022年,8月28日
邏輯與
&&
邏輯或||邏輯非!(x>1)&&(y>1)(x>1)||(y>1)(x>1) !(x>1)即x<=1邏輯運算符的含義
第七頁,共四十七頁,2022年,8月28日邏輯運算符的功能邏輯與
&&
邏輯或||邏輯非!
aba&&ba||b!a假假假假真假真假真真真假假真假真真真真假
第八頁,共四十七頁,2022年,8月28日邏輯表達式邏輯表達式:用邏輯運算符將邏輯運算對象連接起來的式子。(ch>='a')&&(ch<='z')
判斷ch是否為小寫英文字母(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')
判斷ch是否為英文字母
第九頁,共四十七頁,2022年,8月28日條件的表示例1寫出滿足下列條件的C表達式。ch是空格或者回車。
ch==''||ch=='\n'number是偶數(shù)。
number%2==0year是閏年,即year能被4整除但不能被100整除,或year能被400整除。
(year%4==0&&year%100!=0)||(year%400==0)
第十頁,共四十七頁,2022年,8月28日5.3選擇控制結(jié)構(gòu)if語句
1if語句的簡單形式if(表達式)語句
第十一頁,共四十七頁,2022年,8月28日例2打印出不及格的成績
第十二頁,共四十七頁,2022年,8月28日例3輸入一個整數(shù),輸出它的絕對值分析:當(dāng)number<0時,number=-number;當(dāng)number>=0時,?
第十三頁,共四十七頁,2022年,8月28日#include<stdio.h>intmain(void){intnumber; printf("Enteranumber:");scanf("%d",&number);if(number<0){number=-number;}printf("Theabsolutevalueis%d.\n",number);return0;}運行結(jié)果:Enteranumber:10
Theabsolutevalueis10.運行結(jié)果:Enteranumber:-300
Theabsolutevalueis300.
第十四頁,共四十七頁,2022年,8月28日2.if~else結(jié)構(gòu)
if(表達式)語句1else語句2
第十五頁,共四十七頁,2022年,8月28日解我們可以使用兩種方法編程:方法一:用兩個簡單的if語句實現(xiàn):
main(){floatscore;scanf(″%f″,&score);
if(score<60.0)printf(″score=%5.1f---Fail\n″,score);if(score>=60.0)printf(″score=%5.1f---Pass\n″,score);}例4打印成績≥60分為“Pass”,否則為“Fail”。
第十六頁,共四十七頁,2022年,8月28日方法二:用if~else語句實現(xiàn):
main(){floatscore;scanf(″%f″,&score);if(score<60.0)printf(″score=%5.1f---Fail\n″,score);elseprintf(″score=%5.1f---Pass\n″,score);}
第十七頁,共四十七頁,2022年,8月28日條件運算符的使用
當(dāng)if~else結(jié)構(gòu)中的語句是表達式語句時,就可以使用條件運算符實現(xiàn):
if(表達式1)表達式2;
else表達式3;用條件運算符表示:表達式1?表達式2:表達式3
第十八頁,共四十七頁,2022年,8月28日如下列語句段:x=10;if(x>9)y=100;elsey=200;用條件運算符改寫程序段:x=10;y=x>9?100:200;
第十九頁,共四十七頁,2022年,8月28日例5輸入x的值,當(dāng)x>0時調(diào)用sqrt(x),否 則調(diào)用fabs(x)。
#include<stdio.h>#include<math.h>main(){floatx,y;scanf(″%f″,&x);y=x>0?sqrt(x):fabs(x);printf(″x=%f,y=%f\n″,x,y);}
第二十頁,共四十七頁,2022年,8月28日3多分支結(jié)構(gòu)與嵌套的if語句和switch語句多分支結(jié)構(gòu)有多種形式實現(xiàn)方法:嵌套的
if語句
else–if語句嵌套的if-else語句switch語句
第二十一頁,共四十七頁,2022年,8月28日(1)嵌套的if語句if(表達式)
語句1else
語句2
if語句
if語句
else–if語句嵌套的if-else語句
第二十二頁,共四十七頁,2022年,8月28日if(表達式1)語句1elseif(表達式2)語句2……elseif(表達式n-1)語句n-1else語句n假表達式1表達式2語句1語句2語句n-1語句n真
表達式n-1假真
假假真
第二十三頁,共四十七頁,2022年,8月28日嵌套的if–else語句if(表達式1)if(表達式2)語句1else語句2elseif(表達式3)語句3else語句4
表達式1表達式3語句4真假表達式2語句3語句1語句2真真假假
第二十四頁,共四十七頁,2022年,8月28日if(x<1)y=x+1;elseif(x<2)y=x+2;elsey=x+3;if(x<2)if(x<1)y=x+1;elsey=x+2;elsey=x+3;
x<2
x<1y=x+1y=x+2真
假真
y=x+3假假
x<1
x<2y=x+1y=x+2真
假真
y=x+32種嵌套if語句的比較
第二十五頁,共四十七頁,2022年,8月28日else和if的匹配if(表達式1)if(表達式2)語句1else語句2elseif(表達式3)語句3else語句4if(表達式1)if(表達式2)語句1elseif(表達式3)語句3else語句4else與最靠近它的、沒有與別的else匹配過的if匹配if(表達式1)if(表達式2)語句1elseif(表達式3)語句3else語句4{}
第二十六頁,共四十七頁,2022年,8月28日練習(xí):分段計算水費分段計算水費(要求使用嵌套的if-else語句)
第二十七頁,共四十七頁,2022年,8月28日
輸入一個學(xué)生成績,當(dāng)成績≥90時,打印“VeryGood”;當(dāng)80≤成績<90時,打印“Good”;當(dāng)60≤成績<80時,打印“Pass”;當(dāng)成績<60分,打印“Fail”。
例6設(shè)計下面的程序
第二十八頁,共四十七頁,2022年,8月28日方法一:elseif結(jié)構(gòu)來實現(xiàn)main(){floatscore;scanf(″%f″,&score);
if(score>=90)printf(″VeryGood\n″);elseif(score>=80)printf(″Good\n″);elseif(score>=60)printf(″Pass\n″);elseprintf(″Fail\n″);}
第二十九頁,共四十七頁,2022年,8月28日main(){floatscore;scanf(″%f″,&score);if(score>=80)if(score>=90)printf(″VeryGood\n″);
elseprintf(″Good\n″);elseif(score>=60)printf(″Pass\n″);elseprintf(″Fail\n″);}方法二:if嵌套結(jié)構(gòu)來實現(xiàn)
第三十頁,共四十七頁,2022年,8月28日
main(){floatscore;scanf(″%f″,&score);if(score<60)printf(″Fail\n″);elseif(score>=60)printf(″Pass\n″);elseif(score>=80)printf(″Good\n″);elseprintf(″VeryGood\n″);}分析改寫成以下形式:
第三十一頁,共四十七頁,2022年,8月28日(2)switch語句
處理多分支選擇問題,3種情況1)在switch語句的每個語句段中都使用break語句switch(表達式){case常量表達式1:語句段1;break;case常量表達式2:語句段2;break;....…case常量表達式n:語句段n;break;default:語句段n+1;break;}
第三十二頁,共四十七頁,2022年,8月28日
假設(shè)自動售貨機出售4種商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可樂(cola),售價分別是每份3.0、2.5、4.0和3.5元。在屏幕上顯示以下菜單,用戶可以連續(xù)查詢商品的價格,當(dāng)查詢次數(shù)超過5次時,自動退出查詢;不到5次時,用戶可以選擇退出。當(dāng)用戶輸入編號1-4,顯示相應(yīng)商品的價格;輸入0,退出查詢;輸入其他編號,顯示價格為0。[1]Selectcrisps[2]Selectpopcorn[3]Selectchocolate[4]Selectcola[0]Exit例7查詢自動售貨機中商品的價格
第三十三頁,共四十七頁,2022年,8月28日表達式的值=常量表達式2的值表達式語句段1語句段2語句段n語句段n+1表達式的值=常量表達式1的值表達式的值=常量表達式n的值其他breakbreakbreakbreakswitch(choice){case1:price=3.0;break;case2:price=2.5;
break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}
第三十四頁,共四十七頁,2022年,8月28日#include<stdio.h>intmain(void){intchoice,i;doubleprice;
for(i=1;i<=5;i++)
{printf("[1]Selectcrisps\n");printf("[2]Selectpopcorn\n");printf("[3]Selectchocolate\n");printf("[4]Selectcola\n");printf("[0]exit\n");
printf("Enterchoice:");scanf("%d",&choice);
if(choice==0)break;
switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}printf("price=%0.1f\n",price);
}printf("Thanks\n");}[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:1price=3.0[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:7price=0.0
[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:0Thanks
第三十五頁,共四十七頁,2022年,8月28日2)在switch中不使用breakswitch(表達式){case常量表達式1:語句段1;case常量表達式2:語句段2;....…case常量表達式n:語句段n;default:語句段n+1;}
第三十六頁,共四十七頁,2022年,8月28日switch(choice){case1:price=3.0;case2:price=2.5;case3:price=4.0;case4:price=3.5;default:price=0.0;}表達式的值=常量表達式2的值表達式語句段1語句段2語句段n語句段n+1表達式的值=常量表達式1的值表達式的值=常量表達式n的值其他
第三十七頁,共四十七頁,2022年,8月28日3)在switch的某些語句段中使用breakswitch(choice){case1:price=3.0;break;case2:price=2.5;case3:price=4.0;break;case4:price=3.5;default:price=0.0;}
第三十八頁,共四十七頁,2022年,8月28日
用switch語句輸出學(xué)生的分數(shù)等級。設(shè)分數(shù)大于等于90分者為A等,70分~90分為B等(含70),60分~70分為C等(含60),60分以下為D等,分數(shù)為浮點數(shù)。
編程思路:
switch后的表達式必須是有類型而且求出的結(jié)果應(yīng)當(dāng)是一個個離散的值,而不是一個數(shù)值范圍。應(yīng)該想辦法把一個范圍轉(zhuǎn)換成一個確定的值,這是使用switch語句的關(guān)鍵。我們可以把分數(shù)除以10再取整,即可變成離散的數(shù)值,就可以用switch語句解決了。例8設(shè)計下面程序
第三十九頁,共四十七頁,2022年,8月28日
#include<stdio.h>main(){inti;floatscore;printf("Inputascore:");scanf("%f",&score);i=score/10;switch(i){case10:case9:printf("A");break;case8:case7:printf("B");break;case6:printf("C");break;default:printf("D");}return0;}
第四十頁,共四十七頁,2022年,8月28日例9:輸入兩個整數(shù)a和b,按從小到大的順序輸出。算法設(shè)計:
scanf(“%d%d”,&a,&b);
如果a>b,則a和b交換值;
printf(“%d%d”,a,b);
5.3程序舉例
第四十一頁,共四十七頁,2022年,8月28日#include<stdio.h>main(){inta,b,t;printf("請輸入兩個整數(shù):");scanf("%d%d",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%d%d",a,b);}
第四十二頁,共四十七頁,2022年,8月28日例10:輸入三個整數(shù)a,b,c,按從小到大的順序輸出。算法設(shè)計:
scanf(“%d%d%d”,&a,&b,&c);
如果a>b,則a和b交換值;如果a>c,則a和c交換值;如果b>c,則b和c交換值;
printf(“%d%d%d”,a,b,c);
第四十三頁,共四十七頁,2022年,8月28日#include<stdio.h>main(){inta,b,c,t;
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 咖啡館場地租賃合同
- 建筑單價施工合同
- 亮化工程合同協(xié)議書
- 北京租房居間合同
- 會議接待流程優(yōu)化方案
- 室外地磚施工方案
- 老路破除修補施工方案
- 別墅屋頂防水施工方案
- 浮吊桁架吊裝施工方案
- 堤壩加固施工方案
- 鐵路機車車輛制動鉗工(高級)職業(yè)鑒定考試題及答案(新版)
- 統(tǒng)編版語文七年級上冊第三單元整本書閱讀《朝花夕拾》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 2024-2030年中國輻射探測器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- HSE知識能力測驗試題大全附答案
- 國際經(jīng)濟與貿(mào)易《大學(xué)生專業(yè)勞動實踐》教學(xué)大綱
- 工作談心談話100篇簡短
- BOSCH共軌噴油器維修基本知識摘要
- 蜀道難全文注音版
- 月子中心護理部護理檔案模板
- 房地產(chǎn) -旭輝第五代住宅產(chǎn)品手冊 H系全產(chǎn)品結(jié)構(gòu)及標準化體系-(上)
- 養(yǎng)老機構(gòu)認知癥老人非藥物干預(yù)療法操作指南
評論
0/150
提交評論