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

下載本文檔

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

文檔簡介

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

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

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

4、。if語句例如排序初探算法是一個廣泛的概念。學編程,就必需求了解根本的算法。那么排序算法就是其中的明珠。選擇排序法是排序算法中的一種。其根本思想以升序為例是:首先,找出最小的數(shù),放在第一個位置;然后,再找出第二小的數(shù),放在第二個位置;以此類推,直到一切的數(shù)從小到大排序。if語句常見問題解析_1if(表達式); 等價于:if(表達式) ; /這是一個空語句if語句常見問題解析_2if(表達式) 語句1;else 語句2;if(表達式); /錯誤 語句1;else 語句2;if語句常見問題解析_3if(表達式1) 語句1; else if(表達式2) 語句2; else if(表達式m) 語句m;

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

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

7、,直至語句終了或碰到break,而不論能否與剩下的case匹配;假設(shè)不相等,就跳過:后面語句,繼續(xù)比較下一個case。假設(shè)比到最后一個常量表達式都找不到相等的,那么就執(zhí)行default后面的語句。闡明switch后面()里的表達式原那么上允許為恣意數(shù)據(jù)類型。但VC+6.0中只允許為整型或字符型。case后面必需是一個整數(shù),或者是結(jié)果為整數(shù)的表達式,不能包含任何變量。default不是必需的。當沒有default時,假設(shè)一切case都匹配失敗,那么程序就沒結(jié)果。動動腦判別下面的例如能否正確: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)造,就是反復地執(zhí)行同一段代碼。比如,我們要計算1+2+3+100之和,就是反復99次加法運算。循環(huán)構(gòu)造有三種根本類型:for、while 和 do-while。for循環(huán)for循環(huán)的格式for循環(huán)的執(zhí)行過程for循環(huán)的控制范圍for循環(huán)的3個表達式for循環(huán)的格式for循環(huán)的普通格式: for(表達式1; 表達式2; 表達式3) 語句;表達式1僅在第一次循環(huán)時執(zhí)行,以后不再執(zhí)行。表達式2普通是關(guān)系表達式,決議了

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

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

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

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

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

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論