![[計算機軟件及應用]第10講 do-while語句for語句循環結構的嵌套_第1頁](http://file4.renrendoc.com/view/e5e862e930b0c86e657fb2eff88dd6e6/e5e862e930b0c86e657fb2eff88dd6e61.gif)
![[計算機軟件及應用]第10講 do-while語句for語句循環結構的嵌套_第2頁](http://file4.renrendoc.com/view/e5e862e930b0c86e657fb2eff88dd6e6/e5e862e930b0c86e657fb2eff88dd6e62.gif)
![[計算機軟件及應用]第10講 do-while語句for語句循環結構的嵌套_第3頁](http://file4.renrendoc.com/view/e5e862e930b0c86e657fb2eff88dd6e6/e5e862e930b0c86e657fb2eff88dd6e63.gif)
![[計算機軟件及應用]第10講 do-while語句for語句循環結構的嵌套_第4頁](http://file4.renrendoc.com/view/e5e862e930b0c86e657fb2eff88dd6e6/e5e862e930b0c86e657fb2eff88dd6e64.gif)
![[計算機軟件及應用]第10講 do-while語句for語句循環結構的嵌套_第5頁](http://file4.renrendoc.com/view/e5e862e930b0c86e657fb2eff88dd6e6/e5e862e930b0c86e657fb2eff88dd6e65.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第十講while語句、do-while語句、for 語句 循環結構的嵌套5.1 while循環語句由while語句構成的循環也稱當循環。while循環的一般形式如下: while(表達式) 循環體語句圖5.1 while循環流程圖while語句的執行過程是: 先計算while表達式的值,當表達式的值為非零時,便執行循環體語句,之后再計算該表達式的值,由此構成循環,直到有一次求得表達式的值為零時才結束循環,并繼續執行循環體語句之外的后續語句。圖5.1 while循環流程圖while(表達式) 循環體語句例: k=0; while (k10) printf(“*);k+;注意:1)表達式不可省;表
2、達式的值為真的時候,作循環; 2)循環體語句,要能改變表達式的值,使其從真變到假;(為什么啦?)如果循環語句是多條,構成復合語句;執行過程:P50P51(1)(2)(3) 說明:(1)while語句中的表達式可以是任意合法的C表達式。 (2)如果循環體語句是復合語句,一定要用 括起來。 (3) 在循環體語句中應該包含能夠使循環趨于結束的操作,以防止出現死循環。 例5.1 編程求1+2+3+100的值。 這是一個求100個數的累加和問題。所加的加數從1變化到100,因此我們可以在循環體中設計一個整型變量i,使它的初值為1,每循環一次使i的值增1,一直循環到i的值超過100為止,用這個方法就解決所
3、需的加數問題。 要解決求累加和的問題,還要再設計一個變量sum用來存放這100個數的和值,先求0+1的和并將其放在sum中,然后把sum中的數加上2再存放在sum中,依次類推。 在這里,sum累加的過程要放在循環體中,由計算機來判斷所加的數是否已經超過100。 main() int i, sum; i=1; sum=0; while(i=100) sum= sum + i ; i+; printf(sum=%dn, sum); 程序運行后的輸出結果: sum=5050 例程序,求1+2+3+100的值思考:P51例 sum=sum+i*i sum=1e-6) pi=pi+t; n+=2.0;
4、s= -s; /*改變符號*/t=s/n; pi=pi*4;printf(pi=%fn,pi);程序執行后輸出以下結果:小組討論:1、程序5-3:求輸入的某個數是否為素數。假設是,輸出YES,假設不是,輸出NO。素數是指那些大于1,且除了1和它本身以外不能被其他任何數整除的數。如2、3、5、7、11、都是素數;4、6、8、9、那么不是素數。為了判斷某數x是否為素數,最簡單的方法是用2、3、4、x-1,這些數逐個去除x,看能否除盡,只要能被其中某一個數除盡,x就不是素數;否那么,假設不能被任何一個數除盡,x就是素數。實際上只要試除到,就已經可以說明x是否為素數了。這是因為如果小于等于的數都不能除
5、盡x,那么大于的數也不可能除盡x。試除到,可以減少循環次數,提高程序的運行效率。程序代碼如下:#include main( ) int i, x, yes, a;printf(Enter integer number : ); scanf (%d,&x); yes=1; i=2; a=(int)sqrt ( (double) x); while( yes & i2時,進入循環,假設x為素數,yes的值不變,仍為1,假設x能被2的某個數整除,那么x不是素數,使yes的值變為0,并且立即退出循環。退出循環后,if的語句判斷yes的值為1時,輸出YES,否那么輸出NO。小組討論: 2、P53 迭代法
6、5.3 用do-while語句構成的循環 由do-while語句構成的循環稱為直到型循環,do-while語句的一般形式為: do 循環體語句 while(表達式);do-while語句的執行過程是:先執行循環體語句,再求表達式的值,假設表達式的值為“真(非0數值)那么再執行循環體語句,由此構成循環,直到表達式的值為“假 (數值0)時結束循環。如下圖。 試將P51例5。1改為do-while語句結構注意點:P54 do-while語句和while語句的區別在于do-while是先執行循環體語句,后判斷循環條件,因此do-while至少要執行一次循環體。main() int i, sum; i=
7、1; sum=0; do sum= sum+i; i+; while(if3f1+f2-f3f1+f2-f3f1+f2-f3圖5-1 for循環運算過程5.4 for語句和用for語句構成的循環 for語句的一般形式為: for (表達式1;表達式2;表達式3) 循環體語句for循環語句的執行過程是:(1) 計算”表達式1”的值。(2) 計算”表達式2”的值; 若其值為非零,轉至步驟(3); 若其值為零,則轉至步驟(5)。(3) 執行一次循環體語句。(4) 計算”表達式3”;然后轉向步驟(2),構成循環。(5) 結束循環,執行for循環之后的語句。 for語句的常規使用方法:“表達式1用來給循
8、環變量賦初值或做一些初始工作;“表達式2用來作為判斷循環是否結束的條件;“表達式3用來修改循環變量的值,使得循環能夠趨于結束。例如: for(k=0; k10; k+) printf(*); 以上for循環在一行上輸出10個“*號。for語句的常規使用方法例P 56例main() /*程序1 */ int i, sum; for (i=1,sum=0; i=100; i+) sum= sum + i ; printf(sum=%dn, sum);“表達式1”是逗號表達式給循環變量賦初值做一些初始工作,準備累加!判斷循環是否結束!使得循環能夠趨于結束。 從語法上來講,三個表達式都可以是任意合法的
9、C表達式,各表達式之間用;隔開,并且這三個表達式都是任選項。 例如:我們可以用for循環語句將例的程序改寫為如下幾種形式,它們都能正確地求出1+2+3+100的值。 for語句的非常規使用方法main() /*程序2 */ int i=1, sum=0; for ( ; i=100; i+) sum= sum + i ; printf(“sum=%dn”, sum);表達式1省略了!main() /*程序3 */ int i=1, sum=0;for ( ; i100 goto pend; pend: printf(“sum=%dn”, sum);三個表達式都被省掉了!分隔符“ ;”不能省。
10、由于沒有了表達式2,用goto語句結束循環。main() /*程序5 */ int i, sum=0; for (i=1; i=100 ; sum=sum+i+ ); printf(“sum=%dn”, sum);循環體語句是一個空語句!注意在循環體語句之前不能有分號main() int i, sum=0; for (i=1 ; i=100; i+) ; sum= sum + i ; printf(sum=%dn, sum);main() int i, sum=0; for (i=1 ; i=100; i+) ; sum= sum + i ; printf(sum=%dn, sum);/*前面
11、兩個程序的執行過程,結果=101*/main() int i, sum=0; for (i=1 ; i=100; i+); sum= sum + i ; printf(sum=%dn, sum);即:循環體語句是一個空語句!例5.4 編程計算多個圓的面積 本例要求計算5個不同半徑的圓面積,且半徑值的變化是有規律的,從mm開始按增 mm的規律遞增,可直接用半徑r作為for語句的循環控制變量,每循環一次使r的值增0.5 ,直到r大于為止。main( ) float r, s ,pi=3.1416; for(r; ; ) s=pi*r*r ; printf(r=%3.1fs=%fn, r, s);
12、試改為:非常規for 結構 變量r具有雙重功能,它既是循環控制變量,又是圓的半徑值,它的值由變化到,循環體共執行5次,當r增到時,條件表達式的值為0,從而退出循環。5.5 循環結構的嵌套 在一個循環語句的循環體內又完整地包含了另一個循環語句,稱為循環嵌套。循環嵌套的書寫采用縮進形式. 在編寫程序時,循環嵌套的書寫要采用縮進形式,如在例的程序中,內循環中的語句應該比外循環中的語句有規律地向右縮進24列。例5.5 循環嵌套的應用-輸出九九乘法表。main ( )int i, j; for(i=1; i=9; i+) for(j=1; j= i; j+) printf(%1d*%1d =%2d ,
13、i, j , i*j); printf(n); 程序的運行結果為:1*1= 1 2*1= 2 2*2= 4 3*1= 3 3*2= 6 3*3= 9 4*1= 4 4*2= 8 4*3=12 4*4=16 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 例程序輸出的九九乘法表程序5-7:求n!,即計算123 n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆福建省泉州市泉港一中學七上數學期末質量檢測模擬試題含解析
- 2025屆黑龍江大慶市三站中學七上數學期末檢測模擬試題含解析
- 2024-2025學年黑龍江省齊齊哈爾市梅里斯區達呼店中學數學七年級第一學期期末統考模擬試題含解析
- 青海柴達木職業技術學院《健美運動訓練初級》2023-2024學年第一學期期末試卷
- 導游技能考試試題及答案
- 大學毛概試題及答案
- 2024年河南省永城市七上數學期末調研模擬試題含解析
- 江蘇省鹽城市名校2024年七年級數學第一學期期末教學質量檢測試題含解析
- 21年江蘇面試題及答案
- 2025屆北京師大附屬實驗中學數學七上期末復習檢測模擬試題含解析
- YY/T 0450.3-2016一次性使用無菌血管內導管輔件第3部分:球囊擴張導管用球囊充壓裝置
- JJG 33-2002萬能角度尺
- GB/T 26150-2019免洗紅棗
- 城市基礎設施PPP項目運營維護方案
- SDS汽油安全技術說明書
- 【企業安全管理】粉塵涉爆企業安全培訓
- GeneralEnglish-入學測試(劍橋五級)附有答案
- 教海探航論文
- IPC-A-610國際標準中英文對照(doc 17)
- JJF(建材)110-2019水泥雷氏夾膨脹測定儀校準規范-(高清現行)
- 《納尼亞傳奇》閱讀交流(課堂PPT)
評論
0/150
提交評論