版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 C語言程序設計第5章 循環(huán)結構程序設計問題:實際生活生產(chǎn)中,經(jīng)常需要重復進行某些動作,即循環(huán),C中允許嗎? 使用語句對程序的執(zhí)行情況進行循環(huán)控制。循環(huán)結構程序設計 小學生的作業(yè)經(jīng)常是要求一個字重復寫多少遍連鎖店也是一種復制機械化生產(chǎn)流水線生產(chǎn)這些事件的特點是: 滿足一定條件時,對某一動作進行重復。 C語言在進行程序設計的時候,也提供了同樣的結構供用戶使用:循環(huán)結構。引子 本章要點第5章 循環(huán)結構程序設計 本章難點 while語句構成的循環(huán)結構 do-while語句構成的循環(huán)結構 for語句構成的循環(huán)結構 Break語句和continue語句 多重循環(huán)結構的實現(xiàn) for循環(huán)結構 多重循環(huán)結構的
2、實現(xiàn)5.15.25.35.4概述while語句do-while語句for語句第5章 循環(huán)結構程序設計5.5break語句和continue語句5.65.7循環(huán)的嵌套循環(huán)結構程序設計舉例第5章 循環(huán)結構程序設計C語言可實現(xiàn)循環(huán)的語句:用goto 和 if 構成循環(huán)while 語句do while 語句for 語句goto語句及用goto構成循環(huán)goto語句一般格式:功能:無條件轉移語句說明:不能用整數(shù)作標號只能出現(xiàn)在goto所在函數(shù)內(nèi),且唯一只能加在可執(zhí)行語句前面限制使用goto語句 goto 語句標號; .標號:語句; 5.1 概述#include main() int i=1,sum=0;l
3、oop: sum= sum+i; i+; if(i=100) goto loop; printf(“the sum of 1 to 100 is:%dn,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件例 用goto語句構成循環(huán),求1到100的整數(shù)和。循環(huán)體運行結果:the sum of 1to 100 is:5050 5.15.25.35.4概述while語句do-while語句for語句第5章 循環(huán)結構程序設計5.5break語句和continue語句while(表達式) 循環(huán)體語句;表達式循環(huán)
4、體假(0)真(非0)while5.2 while語句一般形式:執(zhí)行過程:任意合法的表達式(關系或邏輯表達式),只要表達式的值為真(非0)就繼續(xù)循環(huán)。特點:先判斷表達式,再執(zhí)行循環(huán)體例5.2 統(tǒng)計從鍵盤輸入一行字符的個數(shù)。#includemain() int n=0; printf(input a string:n); while(getchar()!=n) n+; printf(%d,n); 循環(huán)條件變量初值循環(huán)體注意:while(i=100) sum=sum+i; i+;main() int m,n=0; while(m=3) ; printf(%d,n+); 循環(huán)體如包括有一個以上的語句,
5、則必須用花括弧括起來,組成復合語句。否則,while 語句的作用范圍就只是while語句后面的第一個分號處。 應注意循環(huán)條件的選擇以避免死循環(huán)。循環(huán)體為空(允許)循環(huán)條件為真死循環(huán)5.15.25.35.4概述while語句do-while語句for語句第5章 循環(huán)結構程序設計5.5break語句和continue語句do 循環(huán)體語句; while(表達式);5.3 do-while語句一般形式:執(zhí)行過程:do循環(huán)體表達式假(0)真(非0)while特點:先執(zhí)行循環(huán)體,再判斷表達式至少執(zhí)行一次循環(huán)體例5.3 求整數(shù)i,它滿足條件: 1+2+(i-1)100且1+2+ + i 100。main()
6、 int i=0,sum=0; do i+; sum=sum+i; while(sum100); printf(the integer is:%dn,i);dosum=sum+isum100假(0)真(非0)while運行結果:the integer is:14 例5.4任意輸入一個正整數(shù),將該數(shù)各位顛倒順序輸出。如,輸入1234,輸出為4321。算法分析:根據(jù)題目要求,可以采用除10取余的方法,依次從輸入數(shù)的右邊截取各位數(shù)字輸出。main() int n,d; printf(input a integer:); scanf(%d,&n); while(n!=0) d=n%10; printf
7、(%d,d); n=n/10; do d=n%10; printf(%d,d); n=n/10; while(n!=0);運行結果:input a integer:12344321注意:(1) do-while循環(huán)由do開始,一直到while結束。do-while語句的表達式后面則必須加分號,表示do-while循環(huán)的結束。(2) 在do和while之間的循環(huán)體由多個語句組成時,必須用花括弧括起來組成一個復合語句。(3) do-while和while語句相互替換時,要注意修改循環(huán)控制條件。對于循環(huán)體至少要執(zhí)行一遍的這類問題,編程時就應該盡量使用do-while語句。(4) 程序中要有使循環(huán)條件
8、從真變成假的語句,否則就會造成死循環(huán)。5.15.25.35.4概述while語句do-while語句for語句第5章 循環(huán)結構程序設計5.5break語句和continue語句for(表達式1;表達式2;表達3)語句;5.4 for語句一般形式:執(zhí)行過程:表達式2循環(huán)體假(0)真(非0)for表達式1表達式3表達式1:循環(huán)前賦值表達式2:循環(huán)條件表達式3:修改循環(huán)控制變量的值例5.5 將所有可顯示字符與其ASCII 碼的對照表在屏幕上輸出。main() char c; for(c=32;c=126;c+) printf(%c %dn,c,c);運行結果: 32! 33 126 算法分析:ASC
9、II碼表中前32個字符是計算機使用的控制字符,不能在屏幕上直接顯示,ASCII碼從32(空格)到126()都是可顯示字符,逐一輸出即可。 注意:for語句中的各表達式都可省略,但分號間隔符不能省for(;表達式2;表達式3)省去了表達式1,循環(huán)變量應在for語句之前賦初值。for(表達式1;表達式3)省去了表達式2。for(表達式1;表達式2;)省去了表達式3。for( ; )省去了全部表達式,此時表示是無限循環(huán),除非通過后面將要介紹的break語句才能退出循環(huán)。循環(huán)體可以是一個分號,即空語句。i=1;for(; i100;i+) sum+=i; for(i=1; ;i+) sum=sum+i
10、; for(i=1;i=100;) sum+=i; i+; for(i=1;i=100;i+) ; sum+=i;5.15.25.35.4概述while語句do-while語句for語句第5章 循環(huán)結構程序設計5.5break語句和continue語句break;5.5 break語句和continue語句break語句的一般形式:功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或開關體說明:break只能終止并跳出最近一層的結構break不能用于循環(huán)語句和switch語句之外的任何其它語句之中表達式break;假(0)真(非0)whiledobreak;.表達式假(0)真(非0)whi
11、lebreak語句的應用場合expr2break;.假(0)真(非0)forexpr1expr3break語句用于跳出循環(huán)體:switch表達式語句組1break;語句組2break;語句組nbreak;語句組break;.const 1const 2const ndefaultcase break語句的應用場合Break語句用于跳出開關體:例5.6 計算r=1到r=10時的圓面積,直到面積area大于100為止。 #define PI 3.1415926main() int r; float area; for(r=1;r100) break; printf(r=%d area is: %f
12、n,r,area); 運行結果:r=1 area is: 3.141593r=2 area is: 12.566370r=3 area is: 28.274334r=4 area is: 50.265480r=5 area is: 78.539818跳出循環(huán)(滿足if條件時)continue;5.5 break語句和continue語句continue語句的一般形式:功能:結束本次循環(huán),即不再執(zhí)行循環(huán)體中continue 語句之后的語句,轉入下一次循環(huán)條件的判斷與執(zhí)行。continue一般也要與if語句配合使用。continue語句只能用在循環(huán)體中 例5.7 輸出100以內(nèi)能被7整除的數(shù)。 m
13、ain() int n; for(n=7;n=100;n+) if(n%7!=0) continue; printf(%d ,n); 運行結果:7 14 21 28 35 42 49 56 63 70 77 84 91 98結束本次循環(huán)(不是終止整個循環(huán) )由此處轉去執(zhí)行下次循環(huán)若是break語句,則結束整個循環(huán)(不再判斷執(zhí)行循環(huán)的條件是否成立 )表達式continue;假(0)真(非0)while真(非0)docontinue;.表達式假(0)while表達式2continue;.假(0)真(非0)for表達式1表達式3continue語句的應用場合5.65.7循環(huán)的嵌套循環(huán)結構程序設計舉例
14、第5章 循環(huán)結構程序設計5.6 循環(huán)的嵌套三種循環(huán)可互相嵌套,層數(shù)不限外層循環(huán)可包含兩個以上內(nèi)循環(huán),但不能相互交叉(即在一個循環(huán)體內(nèi)必須完整地包含著另一個循環(huán)。 )內(nèi)外循環(huán)的循環(huán)控制變量不能重名。同類循環(huán)可以多層嵌套,不同類的循環(huán)也可以相互嵌套。循環(huán)嵌套的結構中每一層的循環(huán)在邏輯上必須是完整的。 嵌套循環(huán)的跳轉禁止:從外層跳入內(nèi)層跳入同層的另一循環(huán)向上跳轉循環(huán)的嵌套舉例main() int i,j; for(i=0;i3;i+) printf(i=%d:,i); for(j=0;j4;j+) printf(j=%-4d,j); printf(n);運行結果:i=0:j=0 j=1 j=2 j=
15、3i=1:j=0 j=1 j=2 j=3i=2:j=0 j=1 j=2 j=3內(nèi)層循環(huán)外層循環(huán)(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)循環(huán)的嵌套示例5.65.7循環(huán)的嵌套循環(huán)結構程序設計舉例第5章 循環(huán)結構程序設計5.7 循環(huán)結構程序設計舉例累加、連乘算法 例5.8 國王的許諾。相傳國際象棋是古印度舍罕王的宰相達依爾發(fā)明的。舍罕王十分喜歡象棋,決定讓宰相自己選擇何種賞賜。這位聰明的宰相指著
16、88共64格的象棋盤說:“陛下,請您賞給我一些麥子吧,就在棋盤的第1格子中放1粒,第2格子中放2粒,第3格子中放4粒,以后每一格都比前一格增加一倍,依次放完棋盤上的64個格子,我就感恩不盡了?!?舍罕王讓人扛來一袋麥子,他要兌現(xiàn)他的許諾。請編程計算舍罕王共要多少粒麥子才能賞賜他的宰相? 算法分析:根據(jù)題設可知麥粒的總數(shù)應該是: sum=20+21+22+263 main() float sum,t; int i; for(t=1,sum=1,i=1;i=63;i+) t=t*2; sum=sum+t; printf(the total of kernels are :%e,sum);運行結果:
17、the total of kernels are:1.84467e+19 f1=1,f2=1for i=1 to 20輸出f1,f2f1=f1+f2f2=f2+f1遞推算法例5.10 求Fibonacci數(shù)列:1,1,2,3,5,8,的前40項,每行輸出4項。main() long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+) printf(%12ld %12ld,f1,f2); if(i%2=0)printf(n); /* 控制輸出,每行四個 */ f1=f1+f2; /* 前兩個加起來賦值給第三個 */ f2=f1+f2; /* 前兩個加起來賦值給第三個 */ 15342331597109467502551422935245782415781718553772584 832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155運行結果:本章小結總覽 C語言中常用的三種循環(huán)語句:while語句、do-while語句和
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體檢科主任先進事跡(7篇)
- 二級職稱專業(yè)技術工作總結(5篇)
- 企業(yè)舉辦年會總結主持詞結束語
- DB12T 487-2013 放射性同位素與射線裝置安全使用管理制度編制規(guī)范
- 書香校園演講稿模板九篇
- 中考前國旗下講話稿
- 個人師德師風剖析材料范文(6篇)
- 與感恩同行演講稿錦集六篇
- DB12∕T 1048-2021 蚯蚓養(yǎng)殖技術規(guī)程
- 驗光技術課件教學課件
- 昆蟲分類表匯總
- GB_T 28581-2021 通用倉庫及庫區(qū)規(guī)劃設計參數(shù)(高清版)
- 天然氣管道增加快速切斷裝置改造施工方案
- 炒股(盈虧、補倉成本、減倉成本)快速計算表格
- 《企業(yè)文化與變革》PPT課件.ppt
- 城市軌道交通線路選線設計-徐振廷
- 工程委外維保流程ppt課件
- 中建股份公司合同管理手冊
- 超高層建筑電氣設計要點分析
- 精神堡壘報價單
- 德國支持中小企業(yè)科技創(chuàng)新的政策資料
評論
0/150
提交評論