![第四章循環(huán)結(jié)構(gòu)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/676b44c6-86bd-47c9-bd21-e2506473cd1d/676b44c6-86bd-47c9-bd21-e2506473cd1d1.gif)
![第四章循環(huán)結(jié)構(gòu)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/676b44c6-86bd-47c9-bd21-e2506473cd1d/676b44c6-86bd-47c9-bd21-e2506473cd1d2.gif)
![第四章循環(huán)結(jié)構(gòu)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/676b44c6-86bd-47c9-bd21-e2506473cd1d/676b44c6-86bd-47c9-bd21-e2506473cd1d3.gif)
![第四章循環(huán)結(jié)構(gòu)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/676b44c6-86bd-47c9-bd21-e2506473cd1d/676b44c6-86bd-47c9-bd21-e2506473cd1d4.gif)
![第四章循環(huán)結(jié)構(gòu)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/676b44c6-86bd-47c9-bd21-e2506473cd1d/676b44c6-86bd-47c9-bd21-e2506473cd1d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. while循環(huán)語句結(jié)構(gòu)2. do-while循環(huán)結(jié)構(gòu)3. for循環(huán)語句結(jié)構(gòu)4. break和continue語句的作用5. 循環(huán)結(jié)構(gòu)的嵌套循環(huán)循環(huán)就是重復(fù)地執(zhí)行某些語句。程序中的循環(huán)次數(shù)是有限的,循環(huán)次數(shù)是有限的,由循環(huán)條件決定可以確定循環(huán)次數(shù)。 C語言提供了3種循環(huán)結(jié)構(gòu)語句: while語句 do_while語句 for語句while語句的一般形式為: while() 循環(huán)語句; 循環(huán)變量表達(dá)式; 和一起構(gòu)成循環(huán)體語句。while語句的語法功能:1計算的值,若該值為“假”,則跳出循環(huán),執(zhí)行循環(huán)體后面的語句;若該值為“真”,則執(zhí)行循環(huán)體語句。2重復(fù)步驟1的操作。while語句的流程圖如
2、圖所示 while() 循環(huán)語句; 循環(huán)變量表達(dá)式; 關(guān)于while語句的幾點說明。1不可缺少,其作用是更新計算循環(huán)變量的值,使循環(huán)能正常結(jié)束。2若沒有,則有可能會使程序出現(xiàn)無限循環(huán)而發(fā)生錯誤。3由于while循環(huán)是先判斷的值,后決定是否執(zhí)行,因此,有可能一次也沒有執(zhí)行。在在whilewhile結(jié)構(gòu)中,對條件表達(dá)式的計算要比循環(huán)結(jié)構(gòu)中,對條件表達(dá)式的計算要比循環(huán)體多執(zhí)行一次體多執(zhí)行一次。因為必有一次(最后一次)當(dāng)條。因為必有一次(最后一次)當(dāng)條件表達(dá)式為假時不執(zhí)行循環(huán)體。件表達(dá)式為假時不執(zhí)行循環(huán)體。在判斷條件中使用計數(shù)器時要特別注意計數(shù)器處在判斷條件中使用計數(shù)器時要特別注意計數(shù)器處于控制臨界值
3、時的情形于控制臨界值時的情形。這個問題看似很簡單,。這個問題看似很簡單,但若不注意,往往會導(dǎo)致循環(huán)體多執(zhí)行一次,而但若不注意,往往會導(dǎo)致循環(huán)體多執(zhí)行一次,而且這一錯誤還不易被發(fā)現(xiàn)。且這一錯誤還不易被發(fā)現(xiàn)。2021-7-8 void main() int k=1,sum=0; while(k=100) sum+=k; k+; printf(“nsum=%dn”,sum); 思考思考(1)若循環(huán)體中省略)若循環(huán)體中省略k+會出現(xiàn)什么結(jié)果會出現(xiàn)什么結(jié)果(2)若將)若將sum+=k與與k+順序調(diào)換,結(jié)果有什么變化?順序調(diào)換,結(jié)果有什么變化? 運行結(jié)果:運行結(jié)果: sum=5050 例例4-1 求前求前
4、100個自然數(shù)之和,即個自然數(shù)之和,即1+2+3+99+100分析:由題可知循環(huán)結(jié)束的條件是輸入字符0,循環(huán)體是判斷字符的大小寫并進(jìn)行相應(yīng)處理。程序do_while語句的一般形式為: do while();do_while語句的語法功能:1執(zhí)行,2計算; 若該表達(dá)式的值為“真”,則執(zhí)行步驟1; 若該表達(dá)式的值為“假”,則退出循環(huán)語句結(jié)構(gòu)。do_while語句的流程圖如圖所示注意:注意:要避免出現(xiàn)無限循環(huán)而發(fā)生錯誤。 表達(dá)式的值0 F T 例4-3:用do_while語句的形式實現(xiàn)1100的累加和。 分析:分析:循環(huán)變量i的值從1100遞增,i的初值為1、終值為100, 累加器sum的初值為0
5、循環(huán)計算:sum=sum+i。算法流程圖如圖所示。 初始化循環(huán)變量 i=1 級數(shù)的和 sum=0 sum=sum+i; i+; i100 輸出 sum T F 開始 結(jié)束 分析:底數(shù)規(guī)律從1開始,逐項加1;底數(shù)前面符號正負(fù)交叉,循環(huán)條件是底數(shù)小于等于11for語句是一種計數(shù)循環(huán)。循環(huán)次數(shù)由循環(huán)變量來控制。 for語句的一般形式為:for (;) for語句的3個重要的組成部分:1初始表達(dá)式初始化循環(huán)控制變量。2條件表達(dá)式測試循環(huán)條件。3循環(huán)表達(dá)式更新循環(huán)控制變量的值。for語句的語法功能:1計算的值。該表達(dá)式是對循環(huán)控制變量進(jìn)行初始化。2判斷的值。該表達(dá)式就是循環(huán)條件,若該表達(dá)式的值為“假”,
6、則退出循環(huán),執(zhí)行循環(huán)結(jié)構(gòu)外的語句;若該表達(dá)式的值為“真”,則執(zhí)行。3計算的值。該表達(dá)式更新循環(huán)控制變量的值。4轉(zhuǎn)第2步。for (;) for語句的流程圖:注意:若中有多條語句,則構(gòu)成復(fù)合語句,被包含在一對花括號中。若只有一條,可以不使用花括號。 初始表達(dá)式 條件表達(dá)式 語句體 循環(huán)表達(dá)式 F T #includevoid main()int k,sum;for(k=1,sum=0;k=100;k+)sum+=k;printf(dsum=%dn,sum);k=1,sum=0開始K=100sum+=k輸出sum分析:所謂水仙花數(shù)是一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。從100開始逐個判斷每
7、個三位數(shù)是否符合水仙花規(guī)律,問題的另一個要點是分解出個位數(shù)、十位數(shù)和百位數(shù)#includevoid main() int k,ge,shi,bai; for(k=100;k1000;k+) ge=k%10; shi=k/10%10; bai=k/100; if(k=ge*ge*ge+shi*shi*shi+bai*bai*bai) printf(n%d,k); for語句所具有的特性。1可以省略,但須保留分號(;),同時在for之前必須給循環(huán)控制變量賦值,形式為: ; for for(; ) 2一般不可省略,否則為無限循環(huán)。例如: forfor(i=1; i+i=1; i+) sum =sum
8、+i;sum =sum+i;相當(dāng)于條件總為真,程序會一直不停地執(zhí)行直到“數(shù)據(jù)溢出”。3亦可省略,但在循環(huán)語句體中必須有語句來修改循環(huán)變量,以使條件表達(dá)式的值在某一時刻為假,使程序能正常結(jié)束循環(huán)。 例如:for(sum=0, i=1; i=100;)for(sum=0, i=1; i=100;) sum = sum +i; sum = sum +i; i+;i+; 43個表達(dá)式均省略,即for(;),為無限循環(huán),程序中要避免避免這種情況的發(fā)生。5條件表達(dá)式可以是關(guān)系表達(dá)式、數(shù)值表達(dá)式。只要表達(dá)式的值不等于零,就執(zhí)行循環(huán)體語句。 如: for( i=0; for( i=0; (c=getchar(
9、)!=n(c=getchar()!=n;i+=c);i+=c);6初始表達(dá)式、循環(huán)表達(dá)式可以是逗號表達(dá)式,用來完成逗號表達(dá)式中各表達(dá)式的功能。例如: for (sum=0, i=1; i=100; i+, i+)for (sum=0, i=1; i=100; i+, i+)相當(dāng)于: sum=0;sum=0; for(i=1; i=100; i=i+2) for(i=1; i=100; i=i+2) 7for循環(huán)也可以嵌套,執(zhí)行時是先執(zhí)行最里層的循環(huán),再執(zhí)行其外一層的循環(huán)。幾種循環(huán)的特點比較: do_while與while和for循環(huán)的區(qū)別: do_while循環(huán)中的至少會執(zhí)行一次; 而whil
10、e和for循環(huán)中的有可能一次也不被執(zhí)行。 for循環(huán)和while循環(huán)的算法流程圖描述是一致的。 for循環(huán)適合于循環(huán)次數(shù)確定的情況。 對大多數(shù)問題,do_while、while和for循環(huán)是可以互換的。循環(huán)結(jié)構(gòu)的嵌套,指的是在某一種循環(huán)結(jié)構(gòu)的語句中包含有另一個循環(huán)結(jié)構(gòu)。理論上,循環(huán)嵌套的深度不受限制,但實際中不提倡使用嵌套層次太多的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)嵌套時,要注意: 嵌套的層次不能交叉; 嵌套的內(nèi)外層循環(huán)不能使用同名的循環(huán)變量; 并列結(jié)構(gòu)的內(nèi)外層循環(huán)允許使用同名的循環(huán)變量。運行結(jié)果#includevoid main() int i,j; for(i=0;i3;i+) printf(n oute
11、r loop i=%d:,i); for(j=0;j3;j+)printf(j=%5d,j);例例4-94-9:編寫程序,在屏幕上輸出階梯形式的乘法口訣表。分析;分析;乘法口訣表可以由9行9列來表示,其中第i行有i列。利用循環(huán)嵌套,算法流程圖如圖所示: i=1 i9 i+ 定義循環(huán)變量 i, j j=1 ji 輸出 j*i 的值 j+ 換行 F F T 開始 結(jié)束 T #includevoid main()int i,j,k;for(i=1;i10;i+)for(j=1;j=i;j+)k=i*j; printf(%d*%d=%-5d,j,i,k);printf(n);運行結(jié)果1 1breakb
12、reak語句語句break語句可用于分支結(jié)構(gòu)和循環(huán)語句結(jié)構(gòu)。break語句的作用: 跳出當(dāng)前的控制結(jié)構(gòu)。 在循環(huán)語句中,要謹(jǐn)慎使用break語句。 常用于循環(huán)語句體內(nèi)某一個if條件分支的語句中,用來表示在循環(huán)過程中滿足某一條件時,結(jié)束循環(huán)。break語句流程圖例4-11閱讀程序并解釋程序的功能分析:素數(shù)指的是大于1,且除了1和它本身外,不能被其他數(shù)整除的數(shù)。判斷方法為:從2開始到本身數(shù)之間是否存在某個數(shù)可以被該數(shù)整除,只要存在一個,則證明它不是一個素數(shù)。#includevoid main() int m,k; printf(請輸入一個整數(shù)); scanf(%d,&m); if(m=1) pri
13、ntf(輸入有誤); else for(k=2;k=m) printf(%d是一個素數(shù),m); else printf(%d不是一個素數(shù),m)2 2continuecontinue語句語句continue語句的一般形式為: continue;continue的語法規(guī)則: 結(jié)束本次循環(huán),提前進(jìn)入下一輪循環(huán)。注意:注意: continue語句不會跳出循環(huán)結(jié)構(gòu),而是提前進(jìn)行下一個循環(huán)。while語句和do_while語句遇到continue時,程序會立刻轉(zhuǎn)到條件表達(dá)式,開始下一輪循環(huán);而在for語句中遇到continue時,程序會立刻轉(zhuǎn)到循環(huán)表達(dá)式,更新循環(huán)變量,開始下一輪循環(huán)。continue語句流程圖分析:完全平方數(shù)指的是能夠表示成另一個整數(shù)的平方的整數(shù)。從1開始,每次遞增1,逐項判斷它的平方是否超過500. continue語句同break語句一樣,也有可能會破壞程序的結(jié)構(gòu)化,使程序成為非結(jié)構(gòu)化的程序,因此,應(yīng)當(dāng)盡量避免使用continue語句。提示1.主要討論了3種循環(huán)語句:for、while和do_while循
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板中央空調(diào)銷售合同范本
- 北京億歐網(wǎng)盟科技有限公司-新質(zhì)生產(chǎn)力系列:2025中國消費級AI硬件價值洞察及GEEK50榜單報告
- 2024年三年級道德與法治下冊 第四單元 多樣的交通和通信 11四通八達(dá)的交通第二課時說課稿 新人教版
- 2024年秋七年級地理上冊 第五章 世界的發(fā)展差異 5.2《國際經(jīng)濟(jì)合作》說課稿2 (新版)湘教版
- 9 古代科技 耀我中華(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級上冊
- 養(yǎng)殖設(shè)備銷售合同范例
- 2024年一年級道德與法治上冊 第16課 我有一雙明亮的眼睛說課稿 未來版
- 9 種豆子 說課稿-2023-2024學(xué)年科學(xué)二年級下冊冀人版
- 出售電廠鍋爐合同范例
- 人員轉(zhuǎn)公司合同范例
- 跨領(lǐng)域安檢操作標(biāo)準(zhǔn)化的現(xiàn)狀與挑戰(zhàn)
- 大模型落地應(yīng)用實踐方案
- 催收質(zhì)檢報告范文
- 2025年八省聯(lián)考內(nèi)蒙古高考生物試卷真題答案詳解(精校打印)
- 2024山東一卡通文化旅游一卡通合作協(xié)議3篇
- 人教版八年級上冊地理 2024-2025學(xué)年八年級上冊地理期中測試卷(二)(含答案)
- 2024-2025年江蘇專轉(zhuǎn)本英語歷年真題(含答案)
- 2024屆清華大學(xué)強基計劃數(shù)學(xué)學(xué)科筆試試題(附答案)
- 農(nóng)電公司績效考核管理辦法
- 斜拉橋施工技術(shù)之斜拉索圖文并茂
- GB 1886.227-2016食品安全國家標(biāo)準(zhǔn)食品添加劑嗎啉脂肪酸鹽果蠟
評論
0/150
提交評論