版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1 1第第三三章章循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)2 2第第三三章章 什么是循環(huán)結(jié)構(gòu)?什么是循環(huán)結(jié)構(gòu)? 循環(huán)語句循環(huán)語句 練習和綜合設(shè)計練習和綜合設(shè)計3 3第第三三章章循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是通過對條件的判斷來重復執(zhí)行某是通過對條件的判斷來重復執(zhí)行某些程序語句或程序段些程序語句或程序段 c c語言中是用語言中是用forfor語語句或句或whilewhile語句或語句或dodowhilewhile語句來語句來構(gòu)成循環(huán)結(jié)構(gòu)的。構(gòu)成循環(huán)結(jié)構(gòu)的。循環(huán)結(jié)構(gòu)的主要功循環(huán)結(jié)構(gòu)的主要功能是重復執(zhí)行某些能是重復執(zhí)行某些語句或某段程序。語句或某段程序。 4 4第第三三章章問題問題: :在唱歌等大獎賽評分時,一般要有若干名在唱歌等大獎賽
2、評分時,一般要有若干名評委,記分規(guī)則為:去掉一個最高分,去評委,記分規(guī)則為:去掉一個最高分,去掉一個最低分,再算平均分。設(shè)按百分制掉一個最低分,再算平均分。設(shè)按百分制計分,試設(shè)計一個算分程序。計分,試設(shè)計一個算分程序。 用循環(huán)來累用循環(huán)來累計總得分計總得分程序5 5第第三三章章語句形式:語句形式:for(for(表達式表達式1;1;表達式表達式2;2;表達式表達式3) 3) 語句語句; ; 可以是復合語句可以是復合語句非非0時執(zhí)行循環(huán)體時執(zhí)行循環(huán)體循環(huán)前先求解循環(huán)前先求解常為賦值語句常為賦值語句每次執(zhí)行完循環(huán)體后每次執(zhí)行完循環(huán)體后求解求解,常為增量或減量常為增量或減量執(zhí)行過程執(zhí)行過程 :(1
3、1)求解表達式)求解表達式1 1,為循環(huán)控制,為循環(huán)控制變量賦初值。變量賦初值。(2 2)求解表達式)求解表達式2 2,若表達式,若表達式2 2的的值為真,則執(zhí)行循環(huán)體一次,若值為真,則執(zhí)行循環(huán)體一次,若為假則結(jié)束循環(huán)結(jié)構(gòu),轉(zhuǎn)去執(zhí)行為假則結(jié)束循環(huán)結(jié)構(gòu),轉(zhuǎn)去執(zhí)行循環(huán)的后繼語句。循環(huán)的后繼語句。(3 3)執(zhí)行完一次循環(huán)體后,接著)執(zhí)行完一次循環(huán)體后,接著求解表達式求解表達式3 3,對循環(huán)控制變量進,對循環(huán)控制變量進行增量或減量操作,再重復第行增量或減量操作,再重復第2 2步步操作。操作。for(x=1;x5;x+)for(x=1;x5;x+) printf( printf( %d%d ;x;x);
4、);6 6第第三三章章例例 從鍵盤上輸入張三同學五門課程的成績從鍵盤上輸入張三同學五門課程的成績6767、9292、7878、8383、7575,計算出平均成績并輸出。,計算出平均成績并輸出。#include stdio.h#include main()main()intint i,sum,score; sum=0; i,sum,score; sum=0; for(i for(i=1; i=5; i+)=1; i=5; i+) scanf(%d,&score scanf(%d,&score); sum=sum+score; ); sum=sum+score; printf(n
5、printf(n平均成績?yōu)椋浩骄煽優(yōu)椋?6.2f n,%6.2f n, sum/5.0); sum/5.0); 第第i i次循環(huán)次循環(huán) i=5 i=5 的值的值 sumsum的值的值 1 1 真真 0+670+67 2 2 真真 67+9267+92 3 3 真真 159+78159+78 4 4 真真 237+83237+83 5 5 真真 320+75320+75 6 6 假假 結(jié)束循環(huán)結(jié)束循環(huán)7 7第第三三章章例例 從鍵盤上輸入一個大于從鍵盤上輸入一個大于2 2的整數(shù)的整數(shù)n n,判斷,判斷n n是是不是素數(shù)。不是素數(shù)。 只能被只能被1 1和它本身整除的整數(shù)稱為素數(shù)。在和它本身整除的整
6、數(shù)稱為素數(shù)。在數(shù)學中,要判斷數(shù)學中,要判斷n n是否為素數(shù),通常讓是否為素數(shù),通常讓n n除以除以2 2到到n n的平方根之間的每一個整數(shù),如果的平方根之間的每一個整數(shù),如果n n能被能被2 2到到n n的的平方根之間的某個整數(shù)整除,則說明平方根之間的某個整數(shù)整除,則說明n n不是素數(shù),不是素數(shù),否則否則n n一定是素數(shù)。一定是素數(shù)。程序8 8第第三三章章省略表達式省略表達式1 1i=1;i=1;for( ;i=10;i+)for( ;i=10;i+) sum=sum+i; sum=sum+i;forfor語句的任何一個表達式都可以省,但不能語句的任何一個表達式都可以省,但不能省略分號。例如:
7、省略分號。例如:省略表達式省略表達式3 3for( i=1;i=10;)for( i=1;i=10;) sum=sum+i; i+; sum=sum+i; i+; 省略表達式省略表達式2 2時,時,循環(huán)將變成死循環(huán)循環(huán)將變成死循環(huán)循環(huán)體由多個語句組成時,循環(huán)體由多個語句組成時,應該寫成復合語句的形式應該寫成復合語句的形式 forfor語句中可應用逗號表達式,使兩個或多個控語句中可應用逗號表達式,使兩個或多個控制變量同時控制循環(huán)制變量同時控制循環(huán)for(i=0,j=10;ij;i+,jfor(i=0,j=10;ij;i+,j-)-) 循環(huán)體循環(huán)體 forfor語句允許在循環(huán)體內(nèi)改變循環(huán)控制變量的
8、值語句允許在循環(huán)體內(nèi)改變循環(huán)控制變量的值sum=0sum=0;for(count=1;count=100;count+)for(count=1;count=3000) count=100 ; if(sum=3000) count=100 ;在循環(huán)體外的語句不受循環(huán)的控制,在循環(huán)體內(nèi)在循環(huán)體外的語句不受循環(huán)的控制,在循環(huán)體內(nèi)的語句受循環(huán)的控制。的語句受循環(huán)的控制。 9 9第第三三章章語句形式:語句形式:while(while(表達式表達式) ) 語句;語句; 可以是復合語句,其可以是復合語句,其中必須含有改變條件中必須含有改變條件表達式值的語句表達式值的語句執(zhí)行過程:執(zhí)行過程:先計先計算表達式的
9、值,當算表達式的值,當表達式的值為非表達式的值為非 0 0 時執(zhí)行語句;為時執(zhí)行語句;為 0 0 時執(zhí)行循環(huán)的后繼時執(zhí)行循環(huán)的后繼1010第第三三章章例例 從鍵盤上輸入張三同學五門課程的成績從鍵盤上輸入張三同學五門課程的成績6767、9292、7878、8383、7575,計算出平均成績并輸出。,計算出平均成績并輸出。對下面的程序進行修改,用對下面的程序進行修改,用whilewhile代替代替forfor#include stdio.h#include / /* *例例3.13.1的程序的程序* */ /main()main() int int i,sum,score; sum=0; i,su
10、m,score; sum=0; for(i=1; i=5; i+) for(i=1; i=5; i+) scanf(%d,&score scanf(%d,&score); sum=sum+score; ); sum=sum+score; printf(n printf(n平均成績?yōu)椋浩骄煽優(yōu)椋?6.2f n,%6.2f n, sum/5.0); sum/5.0); 1111第第三三章章例例 計算計算1 1至至2020之間的奇數(shù)之和及偶數(shù)之和。之間的奇數(shù)之和及偶數(shù)之和。 說明:說明:判斷一個數(shù)判斷一個數(shù)n n是否為偶數(shù)的常用方法為:是否為偶數(shù)的常用方法為: n%2=0n%2=0
11、。判斷一個數(shù)判斷一個數(shù)n n是否為某個數(shù)的倍數(shù)的常用方法是否為某個數(shù)的倍數(shù)的常用方法為:為:n%n%某個數(shù)某個數(shù)=0=0,如,如 n%5=0 n%5=0 可用于判斷可用于判斷n n是是否為否為5 5的倍數(shù)。的倍數(shù)。 程序1212第第三三章章例例: :求求nn的值的值main()main() int int n,sum=0; n,sum=0; n=1; n=1; while(n=10) while(n=10) sum=sum+n; sum=sum+n; n+; n+; printf( printf( 1-101-10的累加和為的累加和為%d%d ,sum);,sum);n=1n=1 1010問題
12、:問題:1.1.語句語句 n=1n=1;能放在循環(huán)體內(nèi)嗎?;能放在循環(huán)體內(nèi)嗎?2.2.語句語句 n=10 n=10 中的等號能去掉嗎中的等號能去掉嗎?3.3.語句語句 n+ n+ 能去掉或放在循環(huán)外嗎能去掉或放在循環(huán)外嗎?4.4.如要求如要求 1 1到到 10 10 的累乘的累乘 應怎樣修改應怎樣修改程序?程序?s如何修改程序如何修改程序可求可求2+4+6+ +102+4+6+ +10的值的值先判斷后執(zhí)行循環(huán)體先判斷后執(zhí)行循環(huán)體1313第第三三章章語句形式:語句形式:dodo 語句;語句; while(while(表達式表達式);); 執(zhí)行過程:執(zhí)行過程:先執(zhí)行語先執(zhí)行語句,后判斷條件。句,后
13、判斷條件。表達式的值為非表達式的值為非0 0時,時,繼續(xù)執(zhí)行語句;表達繼續(xù)執(zhí)行語句;表達式的值為式的值為0 0時,執(zhí)行時,執(zhí)行循環(huán)的后繼。循環(huán)的后繼。可以是復合語句,其可以是復合語句,其中必須含有改變條件中必須含有改變條件表達式值的語句表達式值的語句1414第第三三章章例例 求求1 1!+2+2!+3+3!+4+4!+ + +20 +20!的值。!的值。 main()main()float n=1,sum=0,t=1;float n=1,sum=0,t=1; do dot=tt=t* *n n; ; sum=sum+t; sum=sum+t; n+; while(n=20); n+; whil
14、e(n=20); printf(1!+2!+3!+ printf(1!+2!+3!+ + 20!=%e n , sum); + 20!=%e n , sum); 第第n n次循環(huán)次循環(huán) t t的值的值 sumsum的值的值 n=20n=20的值的值1 1! 0+1! 1 1! 0+1! 真真(n=2)(n=2)2 2! 1+2! 2 2! 1+2! 真真(n=3)(n=3)3 3! 3+3! 3 3! 3+3! 真真(n=4) (n=4) 4 4! 9+4! 4 4! 9+4! 真真(n=5)(n=5)5 5! 33+5! 5 5! 33+5! 真真(n=6)(n=6) 20 20! 20 2
15、0! 假假(n=21)(n=21) 結(jié)束循環(huán)結(jié)束循環(huán)1515第第三三章章在循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)稱在循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)嵌套。內(nèi)層循環(huán)中再包含其它循環(huán)結(jié)為循環(huán)嵌套。內(nèi)層循環(huán)中再包含其它循環(huán)結(jié)構(gòu),稱為多重循環(huán)嵌套。構(gòu),稱為多重循環(huán)嵌套。 c c語言中的三種語言中的三種循環(huán)語句(循環(huán)語句(forfor、whilewhile、dodowhilewhile)可以互相)可以互相嵌套,構(gòu)成所需嵌套,構(gòu)成所需的多重循環(huán)結(jié)構(gòu)的多重循環(huán)結(jié)構(gòu)循環(huán)嵌套時,內(nèi)層循環(huán)必須被完全包含于外循環(huán)嵌套時,內(nèi)層循環(huán)必須被完全包含于外層循環(huán)內(nèi),不允許循環(huán)結(jié)構(gòu)交叉。層循環(huán)內(nèi),不允許循環(huán)結(jié)構(gòu)交叉。 1
16、616第第三三章章例例3.103.10 打印由打印由星號星號組成的組成的5 5行行5 5列的矩形列的矩形* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *以下以下循環(huán)語句可在同一行上輸出五個星號:循環(huán)語句可在同一行上輸出五個星號: for(j=1;j=5;j+) printffor(j=1;j=5;j+) printf(* *););s若讓該循環(huán)語句執(zhí)行五次,且每執(zhí)行一次輸若讓該循環(huán)語句執(zhí)行五次,且每執(zhí)行一次輸出一個換行,就可以輸出五行五列星號出一個換行,就可以輸
17、出五行五列星號雙重循環(huán)的執(zhí)行過程如下:雙重循環(huán)的執(zhí)行過程如下:i=1i=1時,時,j=1,2,3,4,5j=1,2,3,4,5, 輸出輸出5 5個個* *并換行并換行i=2i=2時,時,j=1,2,3,4,5j=1,2,3,4,5, 輸出輸出5 5個個* *并換行并換行i=3i=3時,時,j=1,2,3,4,5j=1,2,3,4,5, 輸出輸出5 5個個* *并換行并換行i=4i=4時,時,j=1,2,3,4,5j=1,2,3,4,5, 輸出輸出5 5個個* *并換行并換行i=5i=5時,時,j=1,2,3,4,5j=1,2,3,4,5, 輸出輸出5 5個個* *并換行并換行for(i=1;i
18、=5;i+) for(i=1;i=5;i+) for(j=1;j=5;j+) for(j=1;j=5;j+) printf printf(* *);); printf(n printf(n); ); 多重循環(huán)的執(zhí)行過多重循環(huán)的執(zhí)行過程為:程為:外循環(huán)跨一步,外循環(huán)跨一步,內(nèi)循環(huán)轉(zhuǎn)一圈內(nèi)循環(huán)轉(zhuǎn)一圈 1717第第三三章章for(i=1;i=5;i+) for(i=1;i=5;i+) for(j=1;j=5;j+) for(j=1;j=5;j+) printf printf(* *);); printf(n printf(n); ); s要要打印如下打印如下圖形應如何修改下面的雙重循環(huán)圖形應如何修改
19、下面的雙重循環(huán):* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *要求:要求:在在vc+6.0vc+6.0環(huán)境下,通過師生環(huán)境下,通過師生互動的形式完成該互動的形式完成該題的編程題的編程 1818第第三三章章語句形式:語句形式: break;break;u執(zhí)行過程:執(zhí)行過程:
20、終止終止switchswitch語句或循環(huán)語句的執(zhí)語句或循環(huán)語句的執(zhí)行,跳出當前行,跳出當前breakbreak所在的控制結(jié)構(gòu),轉(zhuǎn)去所在的控制結(jié)構(gòu),轉(zhuǎn)去執(zhí)行后繼語句。執(zhí)行后繼語句。 double e=1.0,u=1.0; double e=1.0,u=1.0; int int n; n; for(n=1; n=20; n+) for(n=1; n=20; n+) u=u/n; u=u/n; e=e+u; e=e+u; if(u1.0e-7) break; if(u9 | ch9 | ch0) continue; 0) continue; count+; count+; printf(count
21、 printf(count=%d n,count); =%d n,count); 在在whilewhile和和do-whiledo-while循環(huán)結(jié)構(gòu)中,循環(huán)結(jié)構(gòu)中,continuecontinue立立即轉(zhuǎn)去檢查循環(huán)控制表達式,在即轉(zhuǎn)去檢查循環(huán)控制表達式,在forfor循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)中,則立即轉(zhuǎn)向計算表達式中,則立即轉(zhuǎn)向計算表達式3 3,對循環(huán)控制變,對循環(huán)控制變量增量或減量。量增量或減量。 2020第第三三章章例例: :本例模擬了一個物體的自由落體過程。從本例模擬了一個物體的自由落體過程。從“高空高空”釋放一個物體,它在下降的過程中速度釋放一個物體,它在下降的過程中速度會越來越快,落地反彈
22、后在上升的過程中它的會越來越快,落地反彈后在上升的過程中它的速度會越來越慢。圖速度會越來越慢。圖3-14顯示某一時刻物體所顯示某一時刻物體所處的位置。處的位置。程序2121第第三三章章語句語句while(!e); while(!e); 中的表達式!中的表達式!e e等價于等價于 a)a)e=0 e=0 b)b)e!=1 e!=1 c)c)e!=0 e!=0 d)d)e=1e=1 下面程序段的運行結(jié)果是下面程序段的運行結(jié)果是_。a=1;b=2; c=2;a=1;b=2; c=2;while(abc) t=a;a=b;b=t;c-;while(abc) t=a;a=b;b=t;c-;printf(%d,%d,%d,a,b,cprintf(%d,%d,%d,a,b,c););a)a)1,2,0 1,2,0 b)b)2,1,0 2,1,0 c)c)1,2,1 1,2,1 d)d)2,1,12,1,1下面程序段的運行結(jié)果是下面程序段的運行結(jié)果是_。x=y=0;x=y=0;while(x15) y+;x+=+y; while(x10 &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二婚離婚協(xié)議調(diào)解與和解服務合同
- 二零二五年度農(nóng)產(chǎn)品行業(yè)信息共享與合作合同3篇
- 二零二五年度二手車出口貿(mào)易合同含清關(guān)及運輸服務3篇
- 2025年度白山市旅游度假區(qū)場地租賃合同3篇
- 2024年還建房現(xiàn)房買賣及裝修合同
- 柴油機司機崗位責任制范文(2篇)
- 2024正式的個人之間借款合同
- 2024年生物制藥研發(fā)合作及知識產(chǎn)權(quán)共享合同
- 二零二五年度PHC管樁行業(yè)聯(lián)盟合作與發(fā)展合同3篇
- 2025版綠色環(huán)保新能源電動車銷售合作協(xié)議3篇
- 中國珠寶市場發(fā)展報告(2019-2024)(中英)-中國珠寶玉石首飾行業(yè)協(xié)會
- 2024年陜西省安全員《A證》考試題庫及答案
- 2024版新能源汽車購置補貼及服務保障合同3篇
- 2024-2025學年華東師大新版八年級上冊數(shù)學期末復習試卷(含詳解)
- 《praat使用入門》課件
- 醫(yī)藥銷售主管市場規(guī)劃
- 測量應急管理方案
- 2024-2025學年深圳市初三適應性考試模擬試卷語文試卷
- DB22JT 147-2015 巖土工程勘察技術(shù)規(guī)程
- 杵針療法課件
- 期末測試卷-2024-2025學年語文四年級上冊統(tǒng)編版
評論
0/150
提交評論