流程控制ppt課件_第1頁(yè)
流程控制ppt課件_第2頁(yè)
流程控制ppt課件_第3頁(yè)
流程控制ppt課件_第4頁(yè)
流程控制ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、流程控制前面我們看到的代碼都是順序執(zhí)行的,這稱為順序構(gòu)造。但有時(shí)候,順序構(gòu)造的代碼是遠(yuǎn)遠(yuǎn)不夠的。比如有些18禁的小電影只允許成年人觀看,他由于年齡不夠,兒童不宜。這就是選擇。程序代碼執(zhí)行的順序,稱作流程控制。Ta有順序、選擇和循環(huán)三種構(gòu)造。選擇構(gòu)造選擇構(gòu)培育是根據(jù)不同的情況執(zhí)行不同的代碼。也就是說(shuō),某些代碼能夠執(zhí)行,也能夠不執(zhí)行。選擇構(gòu)造有兩種根本類型:if 和 switch。if語(yǔ)句最簡(jiǎn)單if語(yǔ)句if語(yǔ)句的控制范圍ifelse語(yǔ)句if語(yǔ)句的嵌套ifelse if語(yǔ)句多分支if語(yǔ)句例如排序初探if語(yǔ)句常見(jiàn)問(wèn)題解析最簡(jiǎn)單if語(yǔ)句最簡(jiǎn)單if語(yǔ)句的格式: if(表達(dá)式) 語(yǔ)句;功能:判別表達(dá)式能否為

2、真,假設(shè)真,那么執(zhí)行語(yǔ)句;假設(shè)假,那么執(zhí)行下一條語(yǔ)句。if語(yǔ)句的控制范圍if(表達(dá)式) 語(yǔ)句1; 語(yǔ)句2;當(dāng)前情況下,if語(yǔ)句只能控制語(yǔ)句1的執(zhí)行或不執(zhí)行,不能控制語(yǔ)句2的執(zhí)行或不執(zhí)行。換句話說(shuō),語(yǔ)句2一定會(huì)執(zhí)行。if語(yǔ)句的控制范圍續(xù)if(表達(dá)式) 語(yǔ)句1; 語(yǔ)句2;假設(shè)想讓if語(yǔ)句控制多條語(yǔ)句的執(zhí)行或不執(zhí)行就必需把這些語(yǔ)句用 括起來(lái)。ifelse語(yǔ)句ifelse語(yǔ)句的格式: if(表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2;功能:判別表達(dá)式能否為真,假設(shè)真,那么執(zhí)行語(yǔ)句1;否那么,執(zhí)行語(yǔ)句2。if語(yǔ)句的嵌套一個(gè)if語(yǔ)句又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。Ta的格式: if(表達(dá)式) if(

3、表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2; else if(表達(dá)式) 語(yǔ)句3; else 語(yǔ)句4;闡明if語(yǔ)句的嵌套常用以處理比較復(fù)雜的選擇問(wèn)題,其中每條語(yǔ)句的執(zhí)行都需經(jīng)過(guò)多個(gè)條件共同決議?,F(xiàn)作幾點(diǎn)闡明如下:任何if語(yǔ)句都可以嵌套。被嵌套的if語(yǔ)句本身還可以是嵌套的if語(yǔ)句。在多層嵌套的if語(yǔ)句中,else總是與離它最近且沒(méi)有配對(duì)的if配對(duì)。ifelse if語(yǔ)句多分支ifelse if語(yǔ)句的格式: if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else 語(yǔ)句n;從上到下逐一判別表達(dá)式,當(dāng)某個(gè)表達(dá)式為真,那么執(zhí)行其對(duì)應(yīng)的語(yǔ)句,其他部分不執(zhí)行。假設(shè)一切表達(dá)式均為假,那么執(zhí)行語(yǔ)句n

4、。if語(yǔ)句例如排序初探算法是一個(gè)廣泛的概念。學(xué)編程,就必需求了解根本的算法。那么排序算法就是其中的明珠。選擇排序法是排序算法中的一種。其根本思想以升序?yàn)槔牵菏紫龋页鲎钚〉臄?shù),放在第一個(gè)位置;然后,再找出第二小的數(shù),放在第二個(gè)位置;以此類推,直到一切的數(shù)從小到大排序。if語(yǔ)句常見(jiàn)問(wèn)題解析_1if(表達(dá)式); 等價(jià)于:if(表達(dá)式) ; /這是一個(gè)空語(yǔ)句if語(yǔ)句常見(jiàn)問(wèn)題解析_2if(表達(dá)式) 語(yǔ)句1;else 語(yǔ)句2;if(表達(dá)式); /錯(cuò)誤 語(yǔ)句1;else 語(yǔ)句2;if語(yǔ)句常見(jiàn)問(wèn)題解析_3if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式m) 語(yǔ)句m;

5、 else 語(yǔ)句n;即使表達(dá)式1和表達(dá)式2都成立,也只會(huì)執(zhí)行語(yǔ)句1。if語(yǔ)句常見(jiàn)問(wèn)題解析_4if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3;這樣寫語(yǔ)法上完全沒(méi)有問(wèn)題,但邏輯上會(huì)有破綻。if語(yǔ)句常見(jiàn)問(wèn)題解析_5if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3; else(表達(dá)式4) 語(yǔ)句4;這樣寫是錯(cuò)誤的。矯正方法:要么去掉(表達(dá)式4),要么在(表達(dá)式4)前加if。if語(yǔ)句常見(jiàn)問(wèn)題解析_6if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3;

6、else (表達(dá)式4); 語(yǔ)句4;這樣寫語(yǔ)法上OK,但邏輯上是錯(cuò)誤的。switch語(yǔ)句C言語(yǔ)雖然沒(méi)有限制ifelse可以處置的分支數(shù)量,但當(dāng)分支過(guò)多時(shí),用ifelse處置睬不太方便,而且容易出錯(cuò)。這時(shí),我們就需求另一種選擇構(gòu)造-switch語(yǔ)句,用來(lái)替代多分支的ifelse語(yǔ)句。switch語(yǔ)句的格式switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; case 常量表達(dá)式2: 語(yǔ)句2; case 常量表達(dá)式n: 語(yǔ)句n;default: 語(yǔ)句n+1;switch語(yǔ)句的執(zhí)行過(guò)程先計(jì)算表達(dá)式的值,假設(shè)為m。從第一個(gè)case開(kāi)場(chǎng),依次比較各常量表達(dá)式和m的值。假設(shè)相等,就執(zhí)行:后面的一切語(yǔ)句

7、,直至語(yǔ)句終了或碰到break,而不論能否與剩下的case匹配;假設(shè)不相等,就跳過(guò):后面語(yǔ)句,繼續(xù)比較下一個(gè)case。假設(shè)比到最后一個(gè)常量表達(dá)式都找不到相等的,那么就執(zhí)行default后面的語(yǔ)句。闡明switch后面()里的表達(dá)式原那么上允許為恣意數(shù)據(jù)類型。但VC+6.0中只允許為整型或字符型。case后面必需是一個(gè)整數(shù),或者是結(jié)果為整數(shù)的表達(dá)式,不能包含任何變量。default不是必需的。當(dāng)沒(méi)有default時(shí),假設(shè)一切case都匹配失敗,那么程序就沒(méi)結(jié)果。動(dòng)動(dòng)腦判別下面的例如能否正確:case 10 : printf();case 8+9 : printf();case A : print

8、f();case A+19 : printf();case 9.5 : printf();case a : printf();case a+19 : printf();循環(huán)構(gòu)造所謂循環(huán)構(gòu)造,就是反復(fù)地執(zhí)行同一段代碼。比如,我們要計(jì)算1+2+3+100之和,就是反復(fù)99次加法運(yùn)算。循環(huán)構(gòu)造有三種根本類型:for、while 和 do-while。for循環(huán)for循環(huán)的格式for循環(huán)的執(zhí)行過(guò)程for循環(huán)的控制范圍for循環(huán)的3個(gè)表達(dá)式for循環(huán)的格式for循環(huán)的普通格式: for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語(yǔ)句;表達(dá)式1僅在第一次循環(huán)時(shí)執(zhí)行,以后不再執(zhí)行。表達(dá)式2普通是關(guān)系表達(dá)式,決議了

9、能否還要繼續(xù)下次循環(huán)。表達(dá)式3普通是自增或自減操作,使表達(dá)式2逐漸“不成立。for循環(huán)的執(zhí)行過(guò)程先執(zhí)行表達(dá)式1。再執(zhí)行表達(dá)式2,假設(shè)其值為真,那么執(zhí)行循環(huán)體,否那么終了循環(huán)。執(zhí)行完循環(huán)體后再執(zhí)行表達(dá)式3。反復(fù)執(zhí)行b.和c.,直至表達(dá)式2的值為假,就終了循環(huán)。b.和c.是一次循環(huán),會(huì)反復(fù)執(zhí)行,for循環(huán)的主要作用就是不斷執(zhí)行b.和c.。for循環(huán)的控制范圍for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語(yǔ)句1; 語(yǔ)句2;當(dāng)前情況下,for循環(huán)只能控制語(yǔ)句1執(zhí)行的次數(shù),無(wú)法控制語(yǔ)句2執(zhí)行的次數(shù)。換句話說(shuō),語(yǔ)句2僅執(zhí)行一次。多個(gè)for循環(huán)嵌套_1for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) for (

10、表達(dá)式4; 表達(dá)式5; 表達(dá)式6) 語(yǔ)句1; 語(yǔ)句2;多個(gè)for循環(huán)嵌套_2for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) for (表達(dá)式4; 表達(dá)式5; 表達(dá)式6) 語(yǔ)句1; 語(yǔ)句2; for (表達(dá)式7; 表達(dá)式8; 表達(dá)式9) 語(yǔ)句3; for循環(huán)的3個(gè)表達(dá)式for循環(huán)中的表達(dá)式1循環(huán)初始條件、表達(dá)式2能否循環(huán)條件和表達(dá)式3循環(huán)趨向終了條件都可以省略,但;必需保管。下面以1100的和為例。省略表達(dá)式1可以將表達(dá)式1移到for循環(huán)的前面:int i=1, sum=0;for(; i=100;+i) sum+=i;省略表達(dá)式2假設(shè)不做處置就會(huì)成為死循環(huán):for(i=1; ;+i) sum+=

11、i;所謂死循環(huán),就是能否循環(huán)條件永遠(yuǎn)成立,循環(huán)會(huì)不斷執(zhí)行下去,永不終了。死循環(huán)對(duì)程序的危害很大,一定要防止。省略表達(dá)式3不會(huì)修正表達(dá)式2能否循環(huán)條件中變量的值,可以在循環(huán)體中參與該語(yǔ)句:for(i=1; i=100;) sum+=i; +i; 省略表達(dá)式1和表達(dá)式3i=1;for(;i=100;) sum+=i; +i;3個(gè)表達(dá)式同時(shí)省略for(; ;) /語(yǔ)法上完全OK,無(wú)實(shí)踐意義相當(dāng)于:while(1)補(bǔ)充表達(dá)式1和表達(dá)式3可以是普通表達(dá)式也可以是逗號(hào)表達(dá)式。 for(i=0,j=100; i=100; +i,-j) sum=i+j;表達(dá)式2普通是關(guān)系或邏輯表達(dá)式,也可是數(shù)值或字符,只需非

12、零,就執(zhí)行循環(huán)。 for(;(c=getchar()!=n;) printf(%cn, c);while循環(huán)while循環(huán)的普通格式: while(表達(dá)式) 語(yǔ)句;先執(zhí)行表達(dá)式,其值為真,那么執(zhí)行語(yǔ)句;執(zhí)行完語(yǔ)句,再次執(zhí)行表達(dá)式,假設(shè)為真,繼續(xù)執(zhí)行語(yǔ)句如此循環(huán)往復(fù),直至表達(dá)式為假,退出循環(huán)。while循環(huán)與for循環(huán)for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語(yǔ)句;等價(jià)于:表達(dá)式1;while(表達(dá)式2) 語(yǔ)句; 表達(dá)式3;while循環(huán)例如:回文數(shù)從鍵盤上輸入一個(gè)整數(shù),假設(shè)該數(shù)是回文數(shù),前往YES,否那么前往NO。假設(shè)任一自然數(shù),將其各位數(shù)字反向陳列所得自然數(shù)與其相等,那么稱這個(gè)自然數(shù)為回文

13、數(shù)。如,12321是回文數(shù);但12345不是回文數(shù)do-while循環(huán)do-while循環(huán)的普通格式: do 語(yǔ)句; while(表達(dá)式);do-while循環(huán)與while循環(huán)的不同在于:它會(huì)先執(zhí)行語(yǔ)句,然后再判別表達(dá)式能否為真,為真那么繼續(xù)循環(huán);為假那么終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次語(yǔ)句。跳出循環(huán)運(yùn)用循環(huán)時(shí),假設(shè)想提早終了循環(huán)在不滿足能否循環(huán)條件的情況下終了循環(huán)或進(jìn)入下一次循環(huán),可以運(yùn)用break語(yǔ)句或continue語(yǔ)句。break語(yǔ)句當(dāng)break用于switch語(yǔ)句時(shí),會(huì)終止switch語(yǔ)句。當(dāng)break用于循環(huán)時(shí),會(huì)終止循環(huán)。break語(yǔ)句常和if語(yǔ)句一同運(yùn)用,即滿足條件時(shí)終止循環(huán)。break不能單獨(dú)用于if語(yǔ)句。在多層嵌套的switch語(yǔ)句或循環(huán)中,break只能終止離Ta最近的switch語(yǔ)句或循環(huán)。continue語(yǔ)句continue語(yǔ)句用以跳過(guò)循環(huán)中剩余的語(yǔ)句而強(qiáng)行進(jìn)入下一次循環(huán)。continue語(yǔ)句只能用于循環(huán),常與if語(yǔ)句一同運(yùn)用,即滿足條件時(shí)進(jìn)入下一次循環(huán)。continue語(yǔ)句與break語(yǔ)句的不同點(diǎn)在于: break語(yǔ)句用來(lái)終止循環(huán),循環(huán)語(yǔ)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論