程序的三種基本結(jié)構(gòu).ppt_第1頁
程序的三種基本結(jié)構(gòu).ppt_第2頁
程序的三種基本結(jié)構(gòu).ppt_第3頁
程序的三種基本結(jié)構(gòu).ppt_第4頁
程序的三種基本結(jié)構(gòu).ppt_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、結(jié)構(gòu)化程序設(shè)計(jì) 基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無條件轉(zhuǎn)移語句(goto) 結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序叫 優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率 三種基本結(jié)構(gòu) 順序結(jié)構(gòu),程序的三種基本結(jié)構(gòu),二分支選擇結(jié)構(gòu),多分支選擇結(jié)構(gòu),選擇結(jié)構(gòu),當(dāng)型循環(huán)結(jié)構(gòu),直到型循環(huán)結(jié)構(gòu),注:A,B,A1.An可以是一個(gè)簡單語句,也可以是一個(gè)基本結(jié)構(gòu),循環(huán)結(jié)構(gòu),返回,第5章 選擇語句,5.1 if 條件語句 5.2 switch多分支選擇語句 5.3 程序舉例,5.1 if條件語句 if語句是用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。 5

2、.1.1 if語句的三種形式 1單分支選擇語句的形式: if(表達(dá)式) 語句 這種if語句的執(zhí)行過程見圖:,main( ) float x , y; scanf(“%f ”, ,任給a,b,c三個(gè)數(shù),按從小到大的順序輸出。 分析: (1)對于a,b任意兩個(gè)數(shù): 若ab,則交換a和b,交換后ac,則交換a和c,交換后ac,則交換b和c,交換后bc,例52輸入三個(gè)數(shù),按由小到大順序輸出。 main( ) int a,b,c,temp; printf(Input a,b,c:n); scanf(%d,%d,%d, 運(yùn)行情況如下: 3,7,1 1, 3, 7,2雙分支選擇語句的形式: if(表達(dá)式)

3、語句1 else 語句2 見圖:,main() float x , y; scanf(“%f ”, ,輸入兩個(gè)數(shù), 比較其大小, 將較大的數(shù)輸出。,流程分析: (1) 輸入兩個(gè)數(shù)據(jù)a,b ; (2) 如果ab 則輸出a ;否則,輸出b。 #include main( ) float a, b; scanf(“%f, %f”, ,3多分支選擇語句的形式: if (表達(dá)式1) 語句1 else if (表達(dá)式2) 語句2 else if(表達(dá)式3) 語句3 else if (表達(dá)式m) 語句m else 語句n 流程圖,寫一個(gè)程序完成下列功能: 1. 輸入一個(gè)分?jǐn)?shù)score 2 .score60

4、輸出 E 3 .60=score 70 輸出 D 4. 70=score 80 輸出 C 5 .80=score 90 輸出 B 6 .90=score 輸出 A,多分支問題,#include main( ) int score; scanf(“%d”, ,程序,如:if(a=b,if后面的表達(dá)式類型任意,語句可以是復(fù)合語句 if(x) if(x!=0) if(!x) if(x=0),例 考慮下面程序的輸出結(jié)果: #include main() int x,y; scanf(“%d,%d”, ,Compile Error!,說明:,5.1.2 一般形式:,if語句嵌套,/*ch4_4.c*/

5、#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d, ,運(yùn)行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,例 輸入兩數(shù)并判斷其大小關(guān)系,缺省 時(shí),else總是和它上面離它最近的未配對的if配對,if else 配對原則:,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,

6、實(shí)現(xiàn)if else 正確配對方法:加 ,實(shí)現(xiàn)if else 正確配對方法,5.2 switch語句 switch語句是多分支選擇語句。if語句只有兩個(gè)分支可供選擇,而實(shí)際問題中常常需要用到多分支的選擇。例如,學(xué)生成績分類(90分以為A等,8089分為B等,7079分為c 等,);人口統(tǒng)計(jì)分類(按年齡分為老、中、青、少、兒童);工資統(tǒng)計(jì)分類;銀行存款分類;等。當(dāng)然這些都可以用嵌套的if語句或多分支來處理,但如果分支較多,則嵌套的if語句層數(shù)多,程序冗長而且可讀性降低。C語言提供switch語句直接處理多分支選擇,它的一般形式如下: switch (表達(dá)式) case 常量表達(dá)式1:語句1 cas

7、e 常量表達(dá)式2:語句2 case 常量表達(dá)式i:語句n default :語句n+1 ,首先計(jì)算表達(dá)式的值,然后依次與常量表達(dá)式 i(i=1,2,n)比較。 若表達(dá)式的值與某一個(gè)常量表達(dá)式, 如 j (1 j n)相等,則執(zhí)行語句 j。 若表達(dá)式的值與所有的常量表達(dá)式 i(i=1,2,n)均不相等,則執(zhí)行defau1t后面的語句 n+1。,功能,語句中的表達(dá)式可以是整型或字符型、枚舉型。常量表達(dá)式 i 必須與表達(dá)式類型一致(整型與字符型通用)。 i 僅起語句標(biāo)號(hào)作用,不做求值判斷。 語句結(jié)構(gòu)中各個(gè)case后常量表達(dá)式的值必須互不相同;否則執(zhí)行時(shí)將出現(xiàn)矛盾。 各個(gè)case的出現(xiàn)次序不影響執(zhí)行結(jié)

8、果。例如,可以先出現(xiàn)caseD:,然后是caseA: default一般出現(xiàn)在所有case之后,也可以出現(xiàn)在case之前或兩個(gè)case之間,default也可以缺省。 為了在執(zhí)行完一個(gè)case分支后能跳出switch多分支選擇語句,可在case分支結(jié)束后,插入一個(gè)break語句。若有break語句,就從此break語句跳出break所在的當(dāng)前結(jié)構(gòu);若無break語句,執(zhí)行該語句后,流程控制轉(zhuǎn)移到下一個(gè)分支: 繼續(xù)執(zhí)行這一個(gè)分支的語句,一直到最后一個(gè)語句執(zhí)行完。,下一頁,注意,switch ( i ) case 1:printf(An); case 3:printf( Cn); case 4:p

9、rintf(Dn); default:printf(En); ,假設(shè)i=3時(shí),則會(huì)從i=3時(shí)做起始語句。運(yùn)行結(jié)果見右圖。如果給每條語句加上break這樣就只執(zhí)行一條語句。,CDE,下一頁,看下面的例子,運(yùn)行結(jié)果,case 2: printf ( Bn );,如果多種情況需要共用一個(gè)執(zhí)行語句,可用case的常量表達(dá)式多種情況列出,最后一種情況后,才放執(zhí)行的語句。 case后面的語句可以是一條語句,也可以是復(fù)合語句,還可以是花括弧括起來的幾條語句,還可以是空語句。有多條語句時(shí)會(huì)順序執(zhí)行完所有語句。,下一頁,說明,編程:根據(jù)輸入的學(xué)生的成績判斷等級。 當(dāng)成績score 90時(shí)為 A等; 成績70score 90 為B等; 成績60score 70 為C等; 成績score 60 為D等; (score 為整數(shù))。,分析: 設(shè)score為整型數(shù),在score90 的范圍內(nèi),score可能取100, 99,.,90,利用兩個(gè)整數(shù)相除,結(jié)果自動(dòng)取整的特性 score score/10 90 10, 9 7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論