《循環(huán)結構》PPT課件

上傳人:san****019 文檔編號:21613487 上傳時間:2021-05-05 格式:PPT 頁數(shù):33 大?。?84.82KB
收藏 版權申訴 舉報 下載
《循環(huán)結構》PPT課件_第1頁
第1頁 / 共33頁
《循環(huán)結構》PPT課件_第2頁
第2頁 / 共33頁
《循環(huán)結構》PPT課件_第3頁
第3頁 / 共33頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《循環(huán)結構》PPT課件》由會員分享,可在線閱讀,更多相關《《循環(huán)結構》PPT課件(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第5章 循環(huán)結構本章要點:5.1 while語句和用while語句構成的循環(huán)結構5.2 do-while語句和用do-while語句構成的循環(huán)結構5.3 for語句和用for語句構成的循環(huán)結構5.4 循環(huán)結構的嵌套5.5 break和continue語句在循環(huán)體中的作用5.6 程序舉例 5.1.1 while循環(huán)的一般形式由while語句構成的循環(huán)也稱“當”循環(huán),While語句的一般形式為:While(表達式)循環(huán)語句;以下是幾點說明:1while是C語言的關鍵字。2while后的表達式,可以是C語言中任意合法的表達式,通常為關系表達式或邏輯表達式,但也可以是其他運算表達式。當表達式的值為零時

2、,表示條件為假;非零時,表示條件為真。 3循環(huán)體可以是一條簡單可執(zhí)行語句,也可以是復合語句。4如果第一次計算時表達式的值就為0,則循環(huán)語句一次也不被執(zhí)行,流程直接跳過While語句,執(zhí)行下一條語句。重點提示:while型循環(huán)語句中循環(huán)體的執(zhí)行次數(shù)可以從0到無窮。若第一次計算表達式的值為0,則循環(huán)體執(zhí)行0次;若表達式恒為真,則陷入死循環(huán)。 5.1.2 while循環(huán)的執(zhí)行過程while循環(huán)的執(zhí)行過程是:計算while后表達式的值,當值為非零時,執(zhí)行循環(huán)體中的語句;當值為零時,退出while循環(huán)。 注意:進入while循環(huán)后,一定要有能使此表達式的值變?yōu)?的操作,否則,循環(huán)將會無限制的進行下去,即

3、進入死循環(huán)。在程序設計中,這個是不允許出現(xiàn)的。例如:計算1+2+3+100。main() int i,sum=0; i=1; while(i100時,循環(huán)條件就不滿足,循環(huán)到此結束。如果無此語句,則i的值一直不變,循環(huán)永不結束,這就稱為“死循環(huán)”。在程序設計中,是不允許死循環(huán)出現(xiàn)的。重點提示:在循環(huán)體中應有使循環(huán)趨于結束的語句。在程序設計中,是不允許死循環(huán)出現(xiàn)的。 5.2 do-while語句和用do-while語句構成的循環(huán)結構5.2.1 do-while語句構成的循環(huán)結構 do-while是另一種循環(huán)結構,它的一般形式為: do 循環(huán)語句;while(表達式); 以下是幾點說明:1do是C

4、語言的關鍵字,必須和while聯(lián)合使用。2在while(表達式)后的分號“;”不可丟,它表示do-while語句的結束。3while后括號中的表達式可以是任意合法的表達式,由它來控制循環(huán)是否執(zhí)行。4do-while之間的循環(huán)體可以是一條可執(zhí)行語句也可以是由“”構成的符合語句。 5.2.2 do-while循環(huán)的執(zhí)行過程do-while語句的執(zhí)行過程是:先執(zhí)行一次指定的循環(huán)語句,然后判斷表達式的值,若表達式的值為非0,再返回重新執(zhí)行循環(huán)語句,如此重復,直到表達式的值為0時才跳出循環(huán)語句,執(zhí)行下一條語句;若表達式的值為0,則不再返回重新執(zhí)行循環(huán)語句,直接退出循環(huán)語句,執(zhí)行下一條語句。如圖5.1(b

5、)所示。do while語句的特點是:先執(zhí)行語句,后判斷表達式的值。故do While語句又稱“直到型”循環(huán)結構。由于是先執(zhí)行后判斷,因此do while語句的循環(huán)語句至少被執(zhí)行一次。注意:while圓括號后面有一個分號“;”,書寫時不能丟。 例如:用do while循環(huán)結構來計算1+2+3+100。main() int i,sum=0; i=1; do sum+=i; i+; while(i=100); printf(dn,sum);程序運行結果為:5050 可以看出,此例的結果與上節(jié)的例程結果是完全相同的,也就是說,對同一問題既可以用while語句來處理,也可用do while語句來處理。

6、在一般情況下,用while語句和do while語句處理同一問題時,若二者的循環(huán)體一樣,運行結果也就一樣。但當while后面表達式的值一開始就為0時,兩種循環(huán)結構的結果是不相同的。重點提示:do-while語句先執(zhí)行語句,后判斷表達式的值。故do-while語句又稱“直到型”循環(huán)結構。由于是先執(zhí)行后判斷,因此do-while語句的循環(huán)語句至少被執(zhí)行一次。 5.3 for語句和用for語句構成的循環(huán)結構5.3.1 for語句構成的循環(huán)結構for語句的一般形式為:for(表達式1;表達式2;表達式3)循環(huán)語句;以下是幾點說明:1表達式1一般為賦值表達式,用于進入循環(huán)之前給循環(huán)變量賦初值。2表達式2

7、一般為關系表達式或邏輯表達式,用于執(zhí)行循環(huán)的條件判定,它與while、do while循環(huán)中的表達式作用完全相同。3表達式3一般為賦值表達式或自增、自減表達式,用于修改循環(huán)變量的值。 for循環(huán)結構是幾乎所有高級語言都提供的循環(huán)控制結構。但C語言中的for語句使用最為靈活,它不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結束條件的情況,因而它完全可以代替while語句和do while語句。重點提示:表達式1、表達式2、表達式3都必須為for語句規(guī)定的合法的表達式。 for語句的執(zhí)行過程是: 先計算表達式1的值。 再計算表達式2的值,若其值為真,則執(zhí)行循環(huán)體一次;否

8、則跳轉第步。 然后計算表達式3的值。 轉回上面第步。 結束循環(huán),執(zhí)行for語句下面一個語句。5.3.2 for循環(huán)執(zhí)行過程 圖5.2 for語句的執(zhí)行流程圖重點提示:在整個for語句中,表達式1只計算一次,表達式2和表達式3則可能計算多次。循環(huán)體可能多次執(zhí)行,也可能一次都不執(zhí)行。 5.3.3 有關for語句的說明(1)for語句的一般形式中的“表達式1”可以省略,即:for(;表達式2;表達式3) 循環(huán)語句;但注意省略表達式1時,其后的分號不能省略。此時,應在for語句之前給循環(huán)變量賦初值。(2)如果省略表達式2,即:for(表達式1;表達式3) 循環(huán)語句;則表示表達式2的值始終為真,循環(huán)將無

9、終止地進行下去。例如:for(i=1;i+) printf(%d,i);將無限循環(huán)輸出1,2,3,4,5,6, (3)如果省略表達式3,即:for(表達式1;表達式2;) 循環(huán)語句;此時,也將產(chǎn)生一個無窮循環(huán)。因此,程序設計者應另外設法保證循環(huán)能正常結束,可以將循環(huán)變量的修改部分(即表達式3)放在循環(huán)語句中控制。例如:for(i=1;i=100;) sum+=i; i+;上述for語句中沒有表達式3,而是將表達式3(i+)放在循環(huán)語句中,作用相同,都能使用循環(huán)正常結束。注意表達式2后面的分號不能省略。(4)也可以同時省略表達式1和表達式3,即:for(;表達式2;) 循環(huán)語句;也即省略了循環(huán)的

10、初值和循環(huán)變量的修改部分,此時完全等價于while 語句。 (5)同時省略表達式1、表達式2和表達式3,即:for(;) 循環(huán)語句; 相當于賦循環(huán)變量的初值,循環(huán)控制條件始終為真,不修改循環(huán)變量,故循環(huán)將無終止地進行下去。(6)在for語句中,表達式1和表達式3不僅可以使用簡單表達式,也可以使用逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔。在逗號表達式內(nèi)按自左至右求解,整個表達式的值為其中最右邊的表達式的值。例如: for(i=1;i=100;i+,sum=sum+i) 相當于 for(i=1;i=100;i+) sum=sum+i;(7)在for語句中,表達式一般為關系表達式或邏輯

11、表達式,但也可以是其他表達式(如字符表達式、數(shù)值表達式)。 (8)for語句的循環(huán)語句可以是空語句??照Z句用來實現(xiàn)延時,即在程序執(zhí)行中等待一定的時間。如下為延時程序的例子:for(i=1;i=1000;i+);注意以上語句最后的分號不能省略,它代表一個空語句。例如:用for循環(huán)結構來計算1+2+3+100。main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%dn,sum);程序運行結果為:5050 可以看出,此例的結果前兩例是完全相同的。顯然,用for語句簡單、方便。重點提示:for語句中的表達式可以部分或全部省略,但兩個分號不能省略,且

12、三個表達式均省略時,循環(huán)將會無限制執(zhí)行,而形成死循環(huán)。因此,編寫程序時,在for后面的一對圓括號內(nèi),應只含有能對循環(huán)進行控制的表達式,其它的操作盡量放在循環(huán)體內(nèi)完成。 5.4 循環(huán)結構的嵌套1循環(huán)嵌套的形式在一個循環(huán)體內(nèi)又完整地包含了另一個循環(huán),稱為循環(huán)嵌套。循環(huán)的嵌套可以是多層,但每一層循環(huán)在邏輯上必須是完整的。例如以下幾種形式的二重嵌套。 while與while二重嵌套 while() while() do while與do while二重嵌套dodo while(); while(); for與for二重嵌套for(;)for(;) while與while二重嵌套 2關于循環(huán)嵌套的幾點說

13、明(1)三種循環(huán)語句不僅各自可以嵌套,而且還可以互相嵌套。例如: while與do while二重嵌套while() do while; while與for二重嵌套while() for(;) do while與for二重嵌套do for(;) while(); (2)使用嵌套時,應注意一個循環(huán)結構應完整地嵌套在另一個循環(huán)體內(nèi),不允許循環(huán)體間交叉。例如以下循環(huán)結構是不正確的:while() do while();(3)除了上述二重嵌套外,還可以有三重嵌套、四重嵌套等多層嵌套。(4)嵌套的外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量不得同名,但并列的內(nèi)、外循環(huán)允許有同名的循環(huán)控制變量。例如以下為合法的循環(huán)結構:

14、for(j=1;j=10;j+) for(i=1;i=10;i+) for(i=1;i=10;i+) 3循環(huán)嵌套程序舉例利用雙層for循環(huán)結構打印出99乘法表。main() int i,j; for(i=1;i10;i+) printf(%5d,i); printf(n); for(i=1;i=46;i+) printf(-); printf(n); for(i=1;i10;i+) for(j=1;j=9;j+) printf(%5d,i*j); printf(n); 程序運行結果為: 1 2 3 4 5 6 7 8 9- 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14

15、16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 (1)第45行和第78行為兩個并列的for循環(huán)結構,作用是輸出運行結果的第1行和第2行。(2)第6行和第9行的“printf(n);”語句作用是輸出一行后進行換行處理。(3)第1014行為二重嵌套for循環(huán)結構,作用是打印乘法表,

16、其中第14行的作用是每次退出內(nèi)循環(huán)之時,即每次輸出一行完畢后進行換行處理。重點提示:在循環(huán)嵌套中,內(nèi)嵌的第一個for循環(huán)的結束條件和外循環(huán)的控制變量是有關的,而最里面的for循環(huán)的循環(huán)結束條件是固定不變的。 5.5 break和continue語句在循環(huán)體中的作用5.5.1 break語句在第四章中我們介紹過,使用break語句可以使流程跳出switch語句體,在循環(huán)結構中,也可以使用break語句使流程跳出本層循環(huán)體,從而提前結束本層循環(huán)。break語句的一般形式為: break; 關于break語句有以下幾點說明:(1)break語句不能用于循環(huán)語句和switch語句之外的任何其他語句中。

17、(2)break語句只能用于循環(huán)體內(nèi),不能用在循環(huán)語句上。如for(i=1;i10;break,i+)是不正確的。(3)break語句只能跳出一層循環(huán),即從當前循環(huán)層中跳出。如果要跳出多層循環(huán),可使用goto語句。 例如:設計一個程序,求能同時滿足除以3余1、除以5余3、除以7余5、除以9余7的最小正整數(shù)。main() int i; for(i=1;i+) if(i%3= =1 printf(%dn,i); 程序運行結果為:313由于此題無法確定循環(huán)的條件和循環(huán)次數(shù),因此應采用無限循環(huán)配以break語句的方法。重點提示:當break語句出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該s

18、witch語句體,當break語句出現(xiàn)在循環(huán)體中,但并不在 switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)。 5.5.2 continue語句1continue語句的一般形式continue語句的作用是結束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句之后的語句,而是跳轉到循環(huán)的開始處,進行下一次是否執(zhí)行循環(huán)的判定。它的一般形式為:continue;2關于continue語句的幾點說明(1)continue語句只是結束循環(huán)結構中的本次循環(huán),并非跳出整個循環(huán)過程。具體說:對while和dowhile語句,遇continue語句后,轉向執(zhí)行while之后圓括號內(nèi)的條件表達式的判斷;對

19、for語句,遇continue語句后,轉向執(zhí)行表達式3。(2)執(zhí)行continue語句并沒有使整個循環(huán)終止。(3)continue語句與break語句有本質的區(qū)別:continue語句只是結束本次循環(huán),而不終止整個循環(huán)的執(zhí)行;而break語句的作用則是強制終止整個循環(huán)過程。 3continue語句與break語句的區(qū)別例如:打印出數(shù)字010,但跳過(即不輸出)數(shù)字5。main() int i; for(i=0;i=10;i+) if(i=5) continue; printf(%5d,i); 程序運行結果為:0 1 2 3 4 6 7 8 9 10 (1)當i等于5時執(zhí)行continue語句,

20、它的作用是終止本次循環(huán),即不再執(zhí)行continue后面的語句,故不輸出5,而是轉轉向執(zhí)行for語句的表達式3,繼續(xù)進行下一輪循環(huán)。(2)實際上,在程序中完全可以不用continue語句,如本例中可以去掉第6、7兩行,而用下面的語句來代替: if(i!=5)(3)如果在本例中將第7行的“continue;”語句,改為“break;”語句,則輸出結果為:0 1 2 3 4可以清楚地看出break語句是終止整個循環(huán)過程,它與continue語句作用是截然不同的。重點提示:當break語句出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該switch語句體,當break語句出現(xiàn)在循環(huán)體中,但并不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)。

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲