版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1C語(yǔ)言第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
5.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。一般形式:
while(表達(dá)式)循環(huán)體當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語(yǔ)句中的內(nèi)嵌語(yǔ)句。其特點(diǎn)是:先判斷表達(dá)式,后執(zhí)行語(yǔ)句。第1頁(yè)/共30頁(yè)
5.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)注意:循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用花括弧括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn)。在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。如果無(wú)此語(yǔ)句,則表達(dá)式的值始終不為0,循環(huán)永不結(jié)束。如果表達(dá)式的值始終不為0,則在循環(huán)體內(nèi)應(yīng)有在某種條件下強(qiáng)行終止循環(huán)的語(yǔ)句。若while后的表達(dá)式一開(kāi)始就為0,循環(huán)體語(yǔ)句可能一次也不執(zhí)行。第2頁(yè)/共30頁(yè)
5.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)例5.1求1+2+...+n的值#include<stdio.h>main(){inti,n,sum;printf(“n=”);scanf(“%d”,&i);sum=0;while(i<=10){sum=sum+i;i++;}printf(“sum=%d”,sum);}第3頁(yè)/共30頁(yè)
5.2用do-while語(yǔ)句實(shí)現(xiàn)循環(huán)do-while語(yǔ)句的特點(diǎn):先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。一般形式:
do
循環(huán)體語(yǔ)句
while(表達(dá)式);執(zhí)行過(guò)程:先執(zhí)行一次指定的循環(huán)體語(yǔ)句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零(“真”)時(shí),返回重新執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)循環(huán)結(jié)束。第4頁(yè)/共30頁(yè)5.2用do-while語(yǔ)句實(shí)現(xiàn)循環(huán)注意:循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用花括弧括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn)。在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。如果無(wú)此語(yǔ)句,則表達(dá)式的值始終不為0,循環(huán)永不結(jié)束。如果表達(dá)式的值始終不為0,則在循環(huán)體內(nèi)應(yīng)有在某種條件下強(qiáng)行終止循環(huán)的語(yǔ)句。while后的分號(hào)不能省略,因?yàn)樗硎綿o-while語(yǔ)句結(jié)束。第5頁(yè)/共30頁(yè)5.2用do-while語(yǔ)句實(shí)現(xiàn)循環(huán)例5.2求1+2+...+n的值#include<stdio.h>main(){inti,n,sum;printf(“n=”);scanf(“%d”,&i);sum=0;do{sum=sum+i;i++;}while(i<=10);printf(“sum=%d”,sum);}第6頁(yè)/共30頁(yè)
6.4用do-while語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句和用do-while語(yǔ)句的比較:在一般情況下,用while語(yǔ)句和用do-while語(yǔ)句處理同一問(wèn)題時(shí),若二者的循環(huán)體部分是一樣的,它們的結(jié)果也一樣。但是如果while后面的表達(dá)式一開(kāi)始就為假(0值)時(shí),兩種循環(huán)的結(jié)果是不同的。第7頁(yè)/共30頁(yè)5.2用do-while語(yǔ)句實(shí)現(xiàn)循環(huán)可以看到當(dāng)輸入i<=10,二者結(jié)果一樣。對(duì)于while循環(huán),一次也不執(zhí)行循環(huán)體。而對(duì)do-while來(lái)說(shuō)要執(zhí)行一次。因此用do-while循環(huán)時(shí),應(yīng)將條件取反。把例5.2中的i<=10改為i>10。只有這樣才是對(duì)同一問(wèn)題的兩種表述。第8頁(yè)/共30頁(yè)
5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)C語(yǔ)言中的for語(yǔ)句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語(yǔ)句。一般形式:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句
又可表達(dá)為:
for(循環(huán)變量初值;循環(huán)條件;循環(huán)變量增值)第9頁(yè)/共30頁(yè)
5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)for語(yǔ)句的執(zhí)行過(guò)程:
(1)先求解表達(dá)式1。
(2)求解表達(dá)式2,若其值為真(值為非0),則執(zhí)行for語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步。
(3)求解表達(dá)式3。
(4)轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。
(5)循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句
第10頁(yè)/共30頁(yè)5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)例5.3求1+2+...+n的值#include<stdio.h>main(){inti,n,sum;printf(“n=”);scanf(“%d”,&i);sum=0;for(i=1;i<=10;i++)sum=sum+i;printf(“sum=%d”,sum);}第11頁(yè)/共30頁(yè)5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)注意:for中的表達(dá)式可部分或全部省略,但兩個(gè)分號(hào)不能省略。
eg:for(;;)但這樣循環(huán)會(huì)無(wú)限執(zhí)行,無(wú)意義。稱為死循環(huán)。第12頁(yè)/共30頁(yè)
5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)注意:C語(yǔ)言中的for語(yǔ)句比其他語(yǔ)言(如BASIC,PASCAL)中的FOR語(yǔ)句功能強(qiáng)得多。可以把循環(huán)體和一些與循環(huán)控制無(wú)關(guān)的操作也作為表達(dá)式1或表達(dá)式3出現(xiàn),這樣程序可以短小簡(jiǎn)潔。但過(guò)分地利用這一特點(diǎn)會(huì)使for語(yǔ)句顯得雜亂,可讀性降低,最好不要把與循環(huán)控制無(wú)關(guān)的內(nèi)容放到for語(yǔ)句中。第13頁(yè)/共30頁(yè)5.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)例5.4求1+2+...+n的值#include<stdio.h>main(){inti,n,sum;printf(“n=”);scanf(“%d”,&i);sum=0;for(sum=0,i=1;i<=10;i++)sum=sum+i;printf(“sum=%d”,sum);}第14頁(yè)/共30頁(yè)
5.4幾種循環(huán)的比較(1)三種循環(huán)都可以用來(lái)處理同一問(wè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é)束的語(yǔ)句(如i++,或i=i+1等)。第15頁(yè)/共30頁(yè)
5.4幾種循環(huán)的比較for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此for語(yǔ)句的功能更強(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語(yǔ)句之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。第16頁(yè)/共30頁(yè)5.4幾種循環(huán)的比較(4)while循環(huán)、do-while循環(huán)的表達(dá)式不能省略,for循環(huán)中的3個(gè)表達(dá)式可省略。while循環(huán)、do-while循環(huán)都有可能一次循環(huán)也不執(zhí)行,而do-while循環(huán)則至少執(zhí)行一次。
第17頁(yè)/共30頁(yè)
5.5break語(yǔ)句和continue語(yǔ)句
5.5.1break語(yǔ)句
break語(yǔ)句可以用來(lái)從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句一般形式:
break;注意:break語(yǔ)句不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其他語(yǔ)句中。
第18頁(yè)/共30頁(yè)
5.5break語(yǔ)句和continue語(yǔ)句
例:floatpi=3.14159;for(r=1;r<=10;r++){area=pi*r*r;if(area>100)break;printf(″r=%f,area=%f\n″,r,area);}
程序的作用是計(jì)算r=1到r=10時(shí)的圓面積,直到面積area大于100為止。從上面的for循環(huán)可以看到:當(dāng)area>100時(shí),執(zhí)行break語(yǔ)句,提前結(jié)束循環(huán),即不再繼續(xù)執(zhí)行其余的幾次循環(huán)。第19頁(yè)/共30頁(yè)
5.5break語(yǔ)句和continue語(yǔ)句
continue語(yǔ)句和break語(yǔ)句的區(qū)別
continue語(yǔ)句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。
while(表達(dá)式1)for
{…
if(表達(dá)式2)continue;
…};第20頁(yè)/共30頁(yè)
5.5break語(yǔ)句和continue語(yǔ)句
5.5.2continue語(yǔ)句
作用為結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定.一般形式:
continue;第21頁(yè)/共30頁(yè)
5.5break語(yǔ)句和continue語(yǔ)句
continue和break的區(qū)別
break語(yǔ)句則是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立。
while(表達(dá)式1)for
{…if(表達(dá)式2)break;…}第22頁(yè)/共30頁(yè)5.5break語(yǔ)句和continue語(yǔ)句
eg:輸出100-200之間不能被3整除的數(shù)#include”stdio.h”main(){intn;for(n=100;n<=200;n++){if(n%3==0)continue;printf(“%5d”,n);}}第23頁(yè)/共30頁(yè)
5.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))可以互相嵌套。第24頁(yè)/共30頁(yè)
5.6循環(huán)的嵌套下面幾種都是合法的形式:(1)
while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}{…}}while();}}while();
第25頁(yè)/共30頁(yè)
5.6循環(huán)的嵌套(4)
while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;){}while(){}…{…}…}}}while()
第26頁(yè)/共30頁(yè)
5.7程序舉例
例
判斷m是否素?cái)?shù)。算法思想:讓m被2到m-1除,如果m能被2~m-1之中任何一個(gè)整數(shù)整除,則提前結(jié)束循環(huán),此時(shí)i必然小于m;如果m不能被2~m-1之間的任一整數(shù)整除,則在完成最后一次循環(huán)后,i還要加1,因此i=m,然后判斷為假才終止循環(huán)。在循環(huán)之后判別i的值是否大于或等于m,若是,則表明未曾被2~m-1之間任一整數(shù)整除過(guò),因此輸出“是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛州職業(yè)技術(shù)學(xué)院《海洋生態(tài)與海洋生物的保護(hù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 消毒滅菌培訓(xùn)課件
- 《心肺復(fù)蘇術(shù)操作》課件
- 贛南師范大學(xué)《食品腐敗的抗?fàn)幹贰?023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)生微班會(huì)課件
- 小學(xué)生知禮儀課件
- 三年級(jí)數(shù)學(xué)上冊(cè)8探索樂(lè)園用有余數(shù)的除法解決規(guī)律問(wèn)題學(xué)案冀教版
- 三年級(jí)數(shù)學(xué)上冊(cè)五四則混合運(yùn)算說(shuō)課稿西師大版
- 三年級(jí)數(shù)學(xué)上冊(cè)第九單元數(shù)學(xué)廣角第1課時(shí)集合教案新人教版
- 2025年7月日歷表(含農(nóng)歷-周數(shù)-方便記事備忘)
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)期中復(fù)習(xí)(易錯(cuò)60題)(解析版)
- 環(huán)保驗(yàn)收課件教學(xué)課件
- 毛概學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- DB11T 1678-2019 城市軌道交通廣告設(shè)施設(shè)置規(guī)范
- 2024年衛(wèi)生院中層干部行政管理考核細(xì)則范本(三篇)
- 海洋工程設(shè)備設(shè)施維護(hù)與保養(yǎng)
- 職業(yè)技術(shù)學(xué)院《藥用植物學(xué)》課程標(biāo)準(zhǔn)
- NBT-電力用直流電源系統(tǒng)驗(yàn)收規(guī)范編制說(shuō)明
- 河南天一大聯(lián)考2025屆數(shù)學(xué)高一上期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 第三單元作文寫(xiě)作《窗外》講義
- 廣西南寧市(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)部編版期末考試(上學(xué)期)試卷及答案
評(píng)論
0/150
提交評(píng)論