版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章整理課件
主要內(nèi)容6.1概述6.2goto語句以及用goto語句構(gòu)成循環(huán)6.3用while語句實(shí)現(xiàn)循環(huán)6.4用do-while語句實(shí)現(xiàn)循環(huán)6.5用for語句實(shí)現(xiàn)循環(huán)6.6循環(huán)的嵌套6.7幾種循環(huán)的比較6.8break語句continue和語句6.9程序舉例整理課件
6.1概述什么是循環(huán)?為什么要使用循環(huán)?問題1:問題2:求學(xué)生平均成績
整理課件循環(huán)整理課件生活中的例子:擊鼓傳花:
大家坐成一個(gè)圈,鼓聲響起的時(shí)候?qū)⒒ㄊ樞蚪坏较乱粋€(gè)人的手里,依次向下傳遞,當(dāng)鼓聲突然中斷時(shí)停止傳花,花束落在誰的手里便成為輸家4×100米接力賽跑:
第1個(gè)人跑完100米后將接力棒傳給第2個(gè)人,第2個(gè)人再跑100米,然后是第3個(gè)人,直到第4個(gè)人跑完最后一個(gè)100米共同點(diǎn):都要完成相同的任務(wù):量變的重復(fù)內(nèi)容都有結(jié)束條件:發(fā)生質(zhì)變的界限整理課件
6.2goto語句以及用goto語句構(gòu)成循環(huán)
goto語句——無條件轉(zhuǎn)向語句
goto語句標(biāo)號(hào);語句標(biāo)號(hào)用標(biāo)識(shí)符表示,例如:gotolabel_1;合法;goto123;不合法.整理課件【例6.1】用goto語句和if語句構(gòu)成循環(huán),計(jì)算sum=1+2+3+……+100
。main(){inti,sum=0;i=1;loop:if(i<=100){sum=sum+i;i++;
gotoloop;}printf("%d\n",sum);}整理課件
6.2goto語句以及用goto語句構(gòu)成循環(huán)濫用goto語句將使程序流程無規(guī)律、可讀性差.不建議使用goto語句。一般來說,可以有兩種用途:(1)與if語句一起構(gòu)成循環(huán)結(jié)構(gòu);(2)從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外。
整理課件
6.3用while語句實(shí)現(xiàn)循環(huán)while語句用來實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。一般形式:
while(表達(dá)式)語句
執(zhí)行過程:計(jì)算表達(dá)式值,若該值為非0時(shí),則執(zhí)行while語句中的內(nèi)嵌語句。然后重復(fù)上述步驟,直到表達(dá)式值為假(為0),則執(zhí)行while語句的下一條語句。其特點(diǎn)是:先判斷表達(dá)式,后執(zhí)行語句。循環(huán)體語句整理課件
6.3用while語句實(shí)現(xiàn)循環(huán)注意:循環(huán)體如果包含一個(gè)以上的語句,應(yīng)該用花括弧括起來,以復(fù)合語句形式出現(xiàn)。在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。整理課件1.計(jì)算sum=1+2+3+……+100整理課件第5章循環(huán)程序設(shè)計(jì)1.計(jì)算sum=1+2+3+……+100循環(huán)體循環(huán)控制條件循環(huán)控制變量循環(huán)的初始化#include<stdio.h>voidmain(){ inti=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“Sum=%d\n”,sum);}整理課件第5章循環(huán)程序設(shè)計(jì)2.計(jì)算sum=2+4+6+……+100循環(huán)體循環(huán)控制條件循環(huán)控制變量循環(huán)的初始化#include<stdio.h>voidmain(){ inti=2,sum=0; while(i<=100) { sum=sum+i; i+=2; } printf(“Sum=%d\n”,sum);}整理課件2.計(jì)算sum=2+4+6+……+100循環(huán)體循環(huán)控制條件循環(huán)控制變量循環(huán)的初始化#include<stdio.h>voidmain(){ inti=2,sum=0; while(i<=100) { sum=sum+i; i+=2; } printf(“Sum=%d\n”,sum);}整理課件
6.4do-while語句
do-while語句的特點(diǎn):先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。一般形式:
do
循環(huán)體語句
while(表達(dá)式);執(zhí)行過程:先執(zhí)行一次指定的循環(huán)體語句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零(“真”)時(shí),返回重新執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)循環(huán)結(jié)束。整理課件
6.4用do-while語句實(shí)現(xiàn)循環(huán)while語句和用do-while語句的比較:二者是完全等價(jià)的。do-while語句有可能一次也不執(zhí)行循環(huán)體。整理課件循環(huán)的變化:sum=1+2+3+……+100#include<stdio.h>voidmain(){ inti=1,sum=0;
while(i<=100) {sum=sum+i;i++;} printf(“Sum=%d\n”,sum);}#include<stdio.h>voidmain(){ inti=1,sum=0;
do { sum=sum+i; i++; }
while(i<=100); printf(“Sum=%d\n”,sum);}整理課件順序打印1-10的階乘,即1!,2!,…,10!本題的關(guān)鍵是求階乘數(shù)學(xué)上,n!=1·2·3·…·(n-1)·n整理課件外循環(huán)內(nèi)循環(huán)對比程序:(更優(yōu))#include<stdio.h>voidmain(){ inti=1; floatf=1;
while(i<=10) {f=f*i; printf("%2d!=%.0f\n",i,f); i++; }}思考一下:8-10的階乘#include<stdio.h>voidmain(){ inti=1,j;
floatf; while(i<=10) { j=1; f=1; while(j<=i) { f=f*j; j++; } printf(“%2d!=%.0f\n”,i,f); i++; }}整理課件
6.5用for語句實(shí)現(xiàn)循環(huán)一般形式:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句表達(dá)式1:初始化表達(dá)式,只執(zhí)行一次表達(dá)式2:循環(huán)控制表達(dá)式,控制循環(huán)的結(jié)束表達(dá)式3:增量表達(dá)式,使表達(dá)式2趨向于假整理課件
6.5用for語句實(shí)現(xiàn)循環(huán)for語句的執(zhí)行過程:
(1)先求解表達(dá)式1。
(2)求解表達(dá)式2,若其值為真(非0),則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán)轉(zhuǎn)到第(5)步。
(3)求解表達(dá)式3。
(4)轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。
(5)循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句
整理課件任意輸入10個(gè)數(shù),求平均值#include<stdio.h>voidmain(){ inti; floatx,sum=0; printf("Enter10numbersonebyone:\n");
for(i=1;i<=10;i++) { scanf("%f",&x); sum+=x; } printf("Averageis%f\n",sum/10);}整理課件例:順序打印1-10的階乘,即1!,2!,3!,…,10!#include<stdio.h>voidmain(){ inti,j; floatf;
for(i=1;i<=10;i++) { f=1;
for(j=1;j<=i;j++) f=f*j; printf("%2d!=%.0f\n",i,f); }}#include<stdio.h>voidmain(){ inti=1,j; floatf; while(i<=10) { j=1; f=1; while(j<=i) { f=f*j; j++; } printf(“%2d!=%.0f\n”,i,f); i++; }}整理課件例:打印幾何圖形對于這類問題,每行中星號(hào)的個(gè)數(shù)、總行數(shù)等都應(yīng)該用循環(huán)結(jié)構(gòu)進(jìn)行控制,而不是直接輸出若干行字符串#include<stdio.h>voidmain(){ inti,j;
for(i=1;i<=4;i++) { for(j=0;j<i;j++)putchar(''); for(j=1;j<=4;j++)putchar('*'); putchar('\n'); }}****************整理課件for語句的變化形式可以省略for語句的“表達(dá)式1”或“表達(dá)式3”,也可以都省略(“退化為”while語句)例:將用鍵盤輸入的若干字符順序輸出到屏幕上#include<stdio.h>voidmain(){ charch; for(;(ch=getchar())!=‘\n’;) putchar(ch);}整理課件
6.6循環(huán)的嵌套一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。三種循環(huán)(while循環(huán)、do-while循環(huán)和for循環(huán))可以互相嵌套。整理課件
6.6循環(huán)的嵌套下面幾種都是合法的形式:(1)
while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}{…}}while();}}while();
整理課件
6.6循環(huán)的嵌套(4)
while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;){}while(){}…{…}…}}}while()
整理課件錯(cuò)誤的嵌套形式循環(huán)必須是完整的,不允許內(nèi)外循環(huán)交叉嵌套
f=1; while(i<10) { i=1; do { f=f*i; i++; } }while(i<10);混亂的控制條件內(nèi)外循環(huán)的循環(huán)控制條件通常是分開的,相對獨(dú)立的
i=1;s=0; while(i<3) { s=s+f; i=1;f=1; while(i<5) { i+=2; f=f*i; } i++;}整理課件
6.7幾種循環(huán)的比較(1)四種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。但一般不提倡用goto型循環(huán)。(2)在while循環(huán)和do-while循環(huán)中,只在while后面的括號(hào)內(nèi)指定循環(huán)條件,因此為了使循環(huán)能正常結(jié)束,應(yīng)在循環(huán)體中包含使循環(huán)趨于結(jié)束的語句(如i++,或i=i+1等)。整理課件
6.7幾種循環(huán)的比較
for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此for語句的功能更強(qiáng),凡用while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。
(3)用while和do-while循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在while和do-while語句之前完成。而for語句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。整理課件
6.7幾種循環(huán)的比較(4)while循環(huán)、do-while循環(huán)和for循環(huán),可以用break語句跳出循環(huán),用continue語句結(jié)束本次循環(huán)(break語句和continue語句見下節(jié))。而對用goto語句和if語句構(gòu)成的循環(huán),不能用break語句和continue語句進(jìn)行控制。
整理課件
6.8break語句和continue語句
6.8.1break語句
break語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句一般形式:
break;注意:break語句不能用于循環(huán)語句和switch語句之外的任何其他語句中。
整理課件
6.8break語句和continue語句
例:計(jì)算r=1到r=10時(shí)的圓面積,直到面積area大于100為止。
floatpi=3.14159;for(){area=pi*r*r;printf(″r=%f,area=%f\n″,r,area);}當(dāng)area>100時(shí),執(zhí)行break語句,提前結(jié)束循環(huán),即不再繼續(xù)執(zhí)行其余的幾次循環(huán)。r=1;r<=10;r++r=1;r<=10;r++if(area>100)break;整理課件
6.8break語句和continue語句
6.8.2continue語句
作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定.一般形式:
continue;整理課件
6.8break語句和continue語句
continue語句和break語句的區(qū)別
continue語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。
while(表達(dá)式1)for
{…
if(表達(dá)式2)continue;
…}整理課件
6.8break語句和continue語句
continue和break的區(qū)別
break語句則是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。
while(表達(dá)式1)for
{…if(表達(dá)式2)break;…}整理課件
6.9程序舉例
例6.6用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一項(xiàng)的絕對值小于為止。N-S圖表示算法
整理課件fabs(t()<=1e-6floats=1.0,pi=0;ints=1,n=1;while(){pi+=t;n+=2;s=-s;t=s/n;}pi*=4;整理課件
6.9程序舉例
例6.7
求Fibonacci數(shù)列前40個(gè)數(shù)。這個(gè)數(shù)列有如下特點(diǎn):第1,2兩個(gè)數(shù)為1,1。從第3個(gè)數(shù)開始,該數(shù)是其前面兩個(gè)數(shù)之和。即:F(1)=1(n=1)F(2)=1(n=2)F(n)=F(n-1)+F(n-2)
(n≥3)
算法如圖所示:整理課件
6.9程序舉例
例6.8
判斷m是否素?cái)?shù)。算法思想:讓m被2到除,如果m能被2~之中任何一個(gè)整數(shù)整除,則提前結(jié)束循環(huán),此時(shí)i必然小于或等于k(即);如果m不能被2~k(即)之間的任一整數(shù)整除,則在完成最后一次循環(huán)后,i還要加1,因此i=k+1,然后才終止循環(huán)。在循環(huán)之后判別i的值是否大于或等于k+1,若是,則表明未曾被2~k之間任一整數(shù)整除過,因此輸出“是素?cái)?shù)”。整理課件整理課件floatk;intm,i=2;scanf(“%d”,&m);while(i<=k){i++;}if()printf(“是素?cái)?shù)“);elseprintf(“不是素?cái)?shù)”);}k=sqrt(m);if(m%i==0)break;i>k+1整理課件
6.9程序舉例
例6.10
譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收報(bào)人再按約定的規(guī)律將其譯回原文。
思路:可以按以下規(guī)律將電文變成密碼:將字母A變成字母E,a變成e,即變成其后的第4個(gè)字母,W變成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省武漢市武昌區(qū)2025屆六上數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 年產(chǎn)2000萬米三角帶等橡膠制品技術(shù)改造項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- 湖南省永州市2025屆四年級數(shù)學(xué)第一學(xué)期期末監(jiān)測模擬試題含解析
- 湖南省岳陽市平江縣安定鎮(zhèn)官塘中心小學(xué)2024-2025學(xué)年數(shù)學(xué)六上期末統(tǒng)考試題含解析
- 惠來縣2025屆四上數(shù)學(xué)期末質(zhì)量檢測模擬試題含解析
- 雞西市密山市2025屆數(shù)學(xué)四年級第一學(xué)期期末統(tǒng)考試題含解析
- 五章檢查表防護(hù)工程
- DB5305∕T 142-2024 保啤麥28號(hào)生產(chǎn)技術(shù)規(guī)程
- 電氣控制與PLC應(yīng)用(第2版)課件:熔斷器的認(rèn)識(shí)與選用
- 課件制度的形式
- 6.Pragmatics 簡明英語語言學(xué) 戴煒棟
- 材料力學(xué)性能材料在單向拉伸下力學(xué)性能
- 個(gè)人防護(hù)用品安全檢查表范本
- 憲法智慧樹知到答案章節(jié)測試2023年海南政法職業(yè)學(xué)院
- 《Reading for Pleasure:He shouted,Wolf!Wolf!》優(yōu)質(zhì)課教案-綏化市優(yōu)課-四年級英語教案
- 高校融媒體活動(dòng)中心工作方案
- 《我們的班規(guī)我們訂》第1課時(shí)公開課教學(xué)設(shè)計(jì)【部編人教版小學(xué)四年級道德與法治上冊】
- 云南富滇銀行紅河分行2023年招聘上岸提分題庫3套【500題帶答案含詳解】
- 北師大版必修第一冊1指數(shù)冪的拓展作業(yè)
- GB/T 36239-2018特種機(jī)器人術(shù)語
- 12YJ6 外裝修標(biāo)準(zhǔn)圖集
評論
0/150
提交評論