版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序的三種基本結(jié)構(gòu) 結(jié)構(gòu)化程序設(shè)計 基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無條件轉(zhuǎn)移語句(goto) 結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序叫 優(yōu)點:結(jié)構(gòu)清晰,易讀,提高程序設(shè)計質(zhì)量和效率 三種基本結(jié)構(gòu) 順序結(jié)構(gòu)ABAB流程圖N-S圖程序的三種基本結(jié)構(gòu)程序的三種基本結(jié)構(gòu)PAB真假PBA真假A1A2AiAnk=k2k=k1k=knk=ki.l二分支選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu)l多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)程序的三種基本結(jié)構(gòu)l當(dāng)型循環(huán)結(jié)構(gòu)l直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為真注:A,B,A1.An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序的三
2、種基本結(jié)構(gòu)返回第5章 選擇語句 5.1 if 條件語句 5.2 switch多分支選擇語句 5.3 程序舉例程序的三種基本結(jié)構(gòu) 5.1 if條件語句條件語句ifif語句是用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定語句是用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。執(zhí)行給出的兩種操作之一。5.1.1 5.1.1 if語句的三種形式語句的三種形式1 1單分支選擇語句單分支選擇語句的形式的形式: ifif(表達(dá)式)(表達(dá)式) 語句語句 這種這種ifif語句的執(zhí)行過程見圖語句的執(zhí)行過程見圖: :0(N)表達(dá)式表達(dá)式語句語句1(Y)main( ) fl
3、oat x , y; scanf(“%f ”, &x); if (x=0) y = 2 * x ; if (x 0) y = 3 - x ; printf(“y= %6.2f”, y ); 程序的三種基本結(jié)構(gòu)任給任給a,b,c三個數(shù),按從小到大的順序輸出。三個數(shù),按從小到大的順序輸出。分析:分析:(1)對于)對于a,b任意兩個數(shù):任意兩個數(shù): 若若ab,則輸出,則輸出 a , b ; 否則輸出否則輸出 b , a ; ( 2 ) 對于三個數(shù),有對于三個數(shù),有6種可能:種可能: abc acb bac bca cab cbb,則交換,則交換a和和b,交換后,交換后ac,則交換,則交換a和
4、和c,交換后,交換后ac,則交換,則交換b和和c,交換后,交換后bb)if(ab) temp=a;a=b;b=a;a=b;b=temp;if(ac)if(ac) temp=a;a=c;c=a;a=c;c=temp;if(bc)if(bc) temp=b;b=c;c=b;b=c;c=temp;printf(%d,%d,%d,a,b,c);printf(%d,%d,%d,a,b,c); 運行情況如下:運行情況如下: 3 3,7 7,1 1 1, 3, 7程序的三種基本結(jié)構(gòu)2 2雙分支選擇語句雙分支選擇語句的形式:的形式: ifif(表達(dá)式)(表達(dá)式) 語句語句1 else 1 else 語句語句2
5、 2 見圖見圖:表達(dá)式表達(dá)式語句語句1語句語句2真假main() float x , y; scanf(“%f ”, &x); if ( x b 則輸出a ;否則,輸出b。#include main( ) float a, b; scanf(“%f, %f”,&a, &b); if (ab) printf (“%f”, a ); else printf (“%f”, b ); 程序的三種基本結(jié)構(gòu) 3 3多分支選擇語句多分支選擇語句的形式:的形式:if if (表達(dá)式(表達(dá)式1 1) 語句語句1 1 else if else if (表達(dá)式(表達(dá)式2 2) 語句語句2 2
6、 else if else if(表達(dá)式(表達(dá)式3 3) 語句語句3 3 else if else if (表達(dá)式(表達(dá)式m m) 語句語句m m else else 語句語句n n 流程圖流程圖表達(dá)式表達(dá)式1FT表達(dá)式表達(dá)式3FT表達(dá)式表達(dá)式2FT表達(dá)式表達(dá)式4FT語句語句4語句語句5語句語句3語句語句2語句語句1程序的三種基本結(jié)構(gòu) 寫一個程序完成下列功能寫一個程序完成下列功能: 1. 輸入一個分?jǐn)?shù)輸入一個分?jǐn)?shù)score 2 .score60 輸出輸出 E 3 .60=score 70 輸出輸出 D 4. 70=score 80 輸出輸出 C 5 .80=score 90 輸出輸出 B 6
7、.90=score 輸出輸出 A多分支問題程序的三種基本結(jié)構(gòu)#includemain( ) int score; scanf(“%d”, &score); if ( score60) printf(“E” ); else if ( score 70) printf(“D” ); else if (score 80) printf(“C” ); else if (score 90) printf(“B” ); else printf(“A” ); 程序程序程序的三種基本結(jié)構(gòu)如:if(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); i
8、f(a) printf(“%d”,a);uif后面的表達(dá)式類型任意u語句可以是復(fù)合語句u 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 Error!說明:程序的三種基本結(jié)構(gòu)5.1.2 l一般形式:if (expr1) if (expr2) statement1 else statement2else if(expr3) stat
9、ement3 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語句嵌套程序的三種基本結(jié)構(gòu)/*ch4_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&a
10、mp;y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);運行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y例 輸入兩數(shù)并判斷其大小關(guān)系程序的三種基本結(jié)構(gòu)缺省 時,else總是和它上面離它最近的未配對的if配對if()if()if()else.else.else.if else 配對原則:程序的三種基本結(jié)構(gòu)例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修改: if (a=b) i
11、f(b=c) printf(“a=b=c”); else printf(“a!=b”);實現(xiàn)if else 正確配對方法:加 實現(xiàn)if else 正確配對方法程序的三種基本結(jié)構(gòu) 5.2 switch語句語句 switchswitch語句是語句是多分支選擇語句多分支選擇語句。ifif語句只有兩個分支可供選擇,語句只有兩個分支可供選擇,而實際問題中常常需要用到多分支的選擇。例如,學(xué)生成績分類(而實際問題中常常需要用到多分支的選擇。例如,學(xué)生成績分類(9090分分以為以為A A等,等,80808989分為分為B B等,等,70707979分為分為c c 等,等,);人口統(tǒng));人口統(tǒng)計分類(按年齡分為
12、老、中、青、少、兒童);工資統(tǒng)計分類;銀行存計分類(按年齡分為老、中、青、少、兒童);工資統(tǒng)計分類;銀行存款分類;款分類;等。等。當(dāng)然這些都可以用嵌套的當(dāng)然這些都可以用嵌套的ifif語句或語句或多分支多分支來處理,但如來處理,但如果分支較多,則嵌套的果分支較多,則嵌套的ifif語句層數(shù)多,程序冗長而且可讀性降低。語句層數(shù)多,程序冗長而且可讀性降低。C C語語言提供言提供switchswitch語句直接處理多分支選擇,它的一般形式如下:語句直接處理多分支選擇,它的一般形式如下: switch switch (表達(dá)式)(表達(dá)式) case case 常量表達(dá)式常量表達(dá)式1 1:語句:語句1 1 c
13、ase case 常量表達(dá)式常量表達(dá)式2 2:語句:語句2 2 case case 常量表達(dá)式常量表達(dá)式i i:語句:語句n n default default :語句:語句n+1n+1 程序的三種基本結(jié)構(gòu) 首先計算表達(dá)式的值,然后依次與常量表達(dá)式首先計算表達(dá)式的值,然后依次與常量表達(dá)式 i(i=1,2,n)比較。)比較。若表達(dá)式的值與某一個常量表達(dá)式,若表達(dá)式的值與某一個常量表達(dá)式, 如如 j (1 j n)相等,則執(zhí)行語句)相等,則執(zhí)行語句 j。 若表達(dá)式的值與所有的常量表達(dá)式若表達(dá)式的值與所有的常量表達(dá)式 i(i=1,2,n)均不)均不相等,則執(zhí)行相等,則執(zhí)行defau1tdefau1t
14、后面的語句后面的語句 n+1。功能功能程序的三種基本結(jié)構(gòu)v 語句中的表達(dá)式可以是整型或字符型、枚舉型。常量表達(dá)語句中的表達(dá)式可以是整型或字符型、枚舉型。常量表達(dá)式式 i 必須與表達(dá)式類型一致(整型與字符型通用)。必須與表達(dá)式類型一致(整型與字符型通用)。 i 僅僅起語句標(biāo)號作用,不做求值判斷。起語句標(biāo)號作用,不做求值判斷。v 語句結(jié)構(gòu)中各個語句結(jié)構(gòu)中各個case后常量表達(dá)式的值必須互不相同;否后常量表達(dá)式的值必須互不相同;否則執(zhí)行時將出現(xiàn)矛盾。則執(zhí)行時將出現(xiàn)矛盾。v 各個各個casecase的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)casecaseD
15、D:,然后是,然后是casecaseA A:v default一般出現(xiàn)在所有一般出現(xiàn)在所有case之后,也可以出現(xiàn)在之后,也可以出現(xiàn)在case之之前或兩個前或兩個case之間之間,default也可以缺省。也可以缺省。v 為了在執(zhí)行完一個為了在執(zhí)行完一個case分支后能跳出分支后能跳出switch多分支選擇語多分支選擇語句,可在句,可在case分支結(jié)束后,插入一個分支結(jié)束后,插入一個break語句。若有語句。若有break語句,就從此語句,就從此break語句跳出語句跳出break所在的當(dāng)前結(jié)構(gòu);所在的當(dāng)前結(jié)構(gòu);若無若無break語句,執(zhí)行該語句后,流程控制轉(zhuǎn)移到下一個語句,執(zhí)行該語句后,流程
16、控制轉(zhuǎn)移到下一個分支分支: 繼續(xù)執(zhí)行這一個分支的語句,一直到最后一個語句繼續(xù)執(zhí)行這一個分支的語句,一直到最后一個語句執(zhí)行完。執(zhí)行完。下一頁下一頁注意注意程序的三種基本結(jié)構(gòu)switch ( i )case 1:printf(An); case 3:printf( Cn); case 4:printf(Dn); default:printf(En); 假設(shè)假設(shè)i=3時,則會從時,則會從i=3時做起始語句。時做起始語句。運行結(jié)運行結(jié)果見右圖。果見右圖。如果給每條如果給每條語句加上語句加上break這樣就這樣就只執(zhí)行一條語句。只執(zhí)行一條語句。CDE下一頁下一頁看下面的例子看下面的例子運行結(jié)果運行結(jié)果c
17、ase 2: printf ( Bn );程序的三種基本結(jié)構(gòu)v如果多種情況需要共用一個執(zhí)行語句如果多種情況需要共用一個執(zhí)行語句, ,可可用用casecase的常量表達(dá)式多種情況列出的常量表達(dá)式多種情況列出, ,最后最后一種情況后一種情況后, ,才放執(zhí)行的語句。才放執(zhí)行的語句。 vcase后面的語句可以是一條語句,也可后面的語句可以是一條語句,也可以是復(fù)合語句,還可以是花括弧括起來以是復(fù)合語句,還可以是花括弧括起來的幾條語句,還可以是空語句。有多條的幾條語句,還可以是空語句。有多條語句時會順序執(zhí)行完所有語句。語句時會順序執(zhí)行完所有語句。下一頁下一頁說明說明程序的三種基本結(jié)構(gòu)編程:根據(jù)輸入的學(xué)生的
18、成績判斷等級。編程:根據(jù)輸入的學(xué)生的成績判斷等級。當(dāng)成績當(dāng)成績score 90時為時為 A等等; 成績成績70score 90 為為B等等; 成績成績60score 70 為為C等等; 成績成績score 60 為為D等;等; (score 為整數(shù)為整數(shù))。分析分析: 設(shè)設(shè)score為整型數(shù),在為整型數(shù),在score90 的范圍內(nèi),的范圍內(nèi),score可能取可能取100, 99,.,90,利用兩個整數(shù)相除,結(jié)果自動,利用兩個整數(shù)相除,結(jié)果自動取整的特性取整的特性 score score/10 90 10, 9 7089 7 , 8 6069 6 60以下以下 defaultscore和和 score /10 有如下對應(yīng)關(guān)系:有如下對應(yīng)關(guān)系: 下一頁下一頁例如例如因此因此,可以用可以用score
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國人民大學(xué)《信息管理專業(yè)研究方法論與創(chuàng)新教育》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州軟件職業(yè)技術(shù)學(xué)院《體育產(chǎn)品概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)2024年體育自評結(jié)果
- 浙江電力職業(yè)技術(shù)學(xué)院《生產(chǎn)運作實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 長安大學(xué)興華學(xué)院《瑜伽基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 餐飲文化與創(chuàng)新模板
- 雙十一醫(yī)保新品發(fā)布
- 專業(yè)基礎(chǔ)-房地產(chǎn)經(jīng)紀(jì)人《專業(yè)基礎(chǔ)》模擬試卷5
- 三年級學(xué)習(xí)導(dǎo)向模板
- 氣候變遷與寒露模板
- 2024-2025學(xué)年華東師大新版八年級上冊數(shù)學(xué)期末復(fù)習(xí)試卷(含詳解)
- 《道路車輛 48V供電電壓的電氣及電子部件 電性能要求和試驗方法》文本以及編制說明
- 十八項醫(yī)療核心制度考試題與答案
- 2024年鄂爾多斯市國資產(chǎn)投資控股集團(tuán)限公司招聘管理單位遴選500模擬題附帶答案詳解
- 篝火晚會流程
- 船形烏頭提取工藝優(yōu)化
- 財務(wù)總監(jiān)個人述職報告
- 居家養(yǎng)老護(hù)理人員培訓(xùn)方案
- 江蘇省無錫市2024年中考語文試卷【附答案】
- 管理者的九大財務(wù)思維
- 四年級上冊數(shù)學(xué)應(yīng)用題練習(xí)100題附答案
評論
0/150
提交評論