版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章主講人:周恒艷合肥信息技術(shù)職業(yè)學(xué)院第五章具有循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)
循環(huán)是計(jì)算機(jī)解題的一個(gè)重要特征。由于計(jì)算機(jī)運(yùn)算速度快,最適宜做重復(fù)性的工作。當(dāng)我們?cè)谶M(jìn)行程序設(shè)計(jì)時(shí),總是要把復(fù)雜的不易理解的求解過(guò)程轉(zhuǎn)換為容易理解的操作的多次重復(fù),從而降低了問(wèn)題的復(fù)雜度,同時(shí)也減少程序書(shū)寫(xiě)及輸入的工作量5.1循環(huán)語(yǔ)句概述求1~100的累計(jì)和。根據(jù)已有的知識(shí),可以用“1+2+……+100”來(lái)求解,但顯然很繁瑣?,F(xiàn)在換個(gè)思路來(lái)考慮:首先設(shè)置一個(gè)累計(jì)器sum,其初值為0,利用sum+=n來(lái)計(jì)算(n依次取1、2、……、100),只要解決以下3個(gè)問(wèn)題即可:
(1)將n的初值置為1;
(2)每執(zhí)行1次“sum+=n”后,n增1;
(3)當(dāng)n增到101時(shí),停止計(jì)算。此時(shí),sum的值就是1~100的累計(jì)和。
根據(jù)已有的知識(shí),單獨(dú)實(shí)現(xiàn)每一步都不難。但是,由于需要經(jīng)常使用這種重復(fù)計(jì)算結(jié)構(gòu)(稱為循環(huán)結(jié)構(gòu)),C語(yǔ)言提供了3條循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn),以簡(jiǎn)化、并規(guī)范循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。5.1for語(yǔ)句和while語(yǔ)句
在3條循環(huán)語(yǔ)句中,for語(yǔ)句最為靈活,不僅可用于循環(huán)次數(shù)已經(jīng)確定的情況,也可用于循環(huán)次數(shù)雖不確定、但給出了循環(huán)繼續(xù)條件的情況。
[案例5.1]求1~100的累計(jì)和。
/*案例代碼文件名:AL5_1.C*/
/*程序功能:求1~100的累計(jì)和*/
main()
{inti,sum=0; /*將累加器sum初始化為0*/
for(i=1;i<=100;i++)sum+=i; /*實(shí)現(xiàn)累加*/
printf("sum=%d\n",sum);
} [程序演示]程序運(yùn)行情況如下:sum=50501.while語(yǔ)句(1)一般格式
while(循環(huán)繼續(xù)條件)
{循環(huán)體語(yǔ)句組;}(2)執(zhí)行過(guò)程執(zhí)行過(guò)程如圖5-2所示。1)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值為非0,轉(zhuǎn)2);否則轉(zhuǎn)3)。2)執(zhí)行循環(huán)體語(yǔ)句組,然后轉(zhuǎn)1)。3)執(zhí)行while語(yǔ)句的下一條。顯然,while循環(huán)是for循環(huán)的一種簡(jiǎn)化形式(缺省“變量賦初值”和“循環(huán)變量增值”表達(dá)式)。
While循環(huán)練習(xí)(D)main(){intx=0,s=0;while(!x!=0)s+=++x;printf(“%d\n”,s);}1邏輯表達(dá)式5.2do-while循環(huán)5.2do-while循環(huán)注意點(diǎn)與while相同。先判斷后做先判斷后做先做后判斷注意:當(dāng)while的條件一開(kāi)始就為假的時(shí)候,則不同。練習(xí)……x=-1;do{x=x*x;}while(!x);……D)有語(yǔ)法錯(cuò)誤C)循環(huán)執(zhí)行一次B)循環(huán)執(zhí)行三次A)是死循環(huán)練習(xí)main(){y=10;do{y--;}while(--y);printf(“%d\n”,y--);}D)0C)8B)1A)-1(D)D)0
1
……s=7;do{s-=2;}while(s==0);printf(“s=%d\n”,s);……1寫(xiě)出下列程序段的運(yùn)行結(jié)果
1
……s=7;do{s-=2;}while(s==0);printf(“s=%d\n”,s);……1寫(xiě)出下列程序段的運(yùn)行結(jié)果s=51.for語(yǔ)句的一般格式
for([變量賦初值];[循環(huán)繼續(xù)條件];[循環(huán)變量增值])
{循環(huán)體語(yǔ)句組;}2.for語(yǔ)句的執(zhí)行過(guò)程執(zhí)行過(guò)程如圖5-1所示。(1)求解“變量賦初值”表達(dá)式。(2)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值非0,執(zhí)行(3);否則,轉(zhuǎn)至(4)。(3)執(zhí)行循環(huán)體語(yǔ)句組,并求解“循環(huán)變量增值”表達(dá)式,然后轉(zhuǎn)向(2)。(4)執(zhí)行for語(yǔ)句的下一條語(yǔ)句。3.說(shuō)明(1)“變量賦初值”、“循環(huán)繼續(xù)條件”和“循環(huán)變量增值”部分均可缺省,甚至全部缺省,但其間的分號(hào)不能省略。(2)當(dāng)循環(huán)體語(yǔ)句組僅由一條語(yǔ)句構(gòu)成時(shí),可以不使用復(fù)合語(yǔ)句形式,如上例所示。(3)“循環(huán)變量賦初值”表達(dá)式,既可以是給循環(huán)變量賦初值的賦值表達(dá)式,也可以是與此無(wú)關(guān)的其它表達(dá)式(如逗號(hào)表達(dá)式)。例如,for(sum=0;i<=100;i++)sum+=i;for(sum=0,i=1;i<=100;i++)sum+=i; (4)“循環(huán)繼續(xù)條件”部分是一個(gè)邏輯量,除一般的關(guān)系(或邏輯)表達(dá)式外,也允許是數(shù)值(或字符)表達(dá)式。
For語(yǔ)句的其他形式For語(yǔ)句的其他形式For語(yǔ)句的其他形式For語(yǔ)句的其他形式練習(xí)0main(){x,y;for(x=0,y=0;x+y<=50;x++,y++){printf(“%3d”,x+y);if(x%5==0)printf(“\n”);}}24681012141618202224262830343638404244464850練習(xí)
請(qǐng)編程序?qū)崿F(xiàn)輸出a~z26個(gè)小寫(xiě)的英文字母練習(xí)
請(qǐng)編程序?qū)崿F(xiàn)輸出a~z26個(gè)小寫(xiě)的英文字母
for(ch=’a’;
ch<=‘z’;
printf(“%c,”,ch);}ch++)
main(){charch;
for(ch=’a’;
ch<=‘z’;
printf(“%c,”,ch);}ch++)5.4循環(huán)的嵌套2
……x=y=0;while(x<20)y++,x+=3;printf(“y=%dx=%d\n”,y,x);……
寫(xiě)出下列程序段的運(yùn)行結(jié)果以及循環(huán)體中的語(yǔ)句共執(zhí)行了幾次。y=7x=21(1)y=1,x=3(2)y=2,x=6(3)y=3,x=9……(7)y=7,x=21y=1x=0
循環(huán)體中的語(yǔ)句共執(zhí)行了1次3
……x=y=0;do{y++;x*=x;}while((x>0)&&(y>5));printf(“y=%dx=%d\n”,y,x);……
寫(xiě)出下列程序段的運(yùn)行結(jié)果以及循環(huán)體中的語(yǔ)句共執(zhí)行了幾次。5.6break語(yǔ)句與continue語(yǔ)句為了使循環(huán)控制更加靈活,C語(yǔ)言提供了break語(yǔ)句和continue語(yǔ)句。1.一般格式:break;
continue;2.功能(1)break:強(qiáng)行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語(yǔ)句的下一條語(yǔ)句。(2)continue:對(duì)于for循環(huán),跳過(guò)循環(huán)體其余語(yǔ)句,轉(zhuǎn)向循環(huán)變量增量表達(dá)式的計(jì)算;對(duì)于while和do-while循環(huán),跳過(guò)循環(huán)體其余語(yǔ)句,但轉(zhuǎn)向循環(huán)繼續(xù)條件的判定。3.break和continue語(yǔ)句對(duì)循環(huán)控制的影響如圖5-4所示。4.說(shuō)明(1)break能用于循環(huán)語(yǔ)句和switch語(yǔ)句中,continue只能用于循環(huán)語(yǔ)句中。(2)循環(huán)嵌套時(shí),break和continue只影響包含它們的最內(nèi)層循環(huán),與外層循環(huán)無(wú)關(guān)。[Return]
主要是用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中break語(yǔ)句1main(){inti,s=0;for(i=0;i<100;i++){scanf(“%d\n”,&x);if(x<=0)break;s+=x;}printf(“s=%d\n”,s);}main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf(“x=%d,y=%d,a=%d\n”,x,y,a);}x=5,y=4,a=15
……a=10;y=0;do{a+=2;y+=a;printf(“a=%dy=%d\n”,a,y);if(y>50)break;}while(a=14);……
寫(xiě)出下列程序段的運(yùn)行結(jié)果?!璦=10;y=0;do{a+=2;y+=a;printf(“a=%dy=%d\n”,a,y);if(y>50)break;}while(a=14);……39a=12y=12a=16y=28a=16y=44a=16y=60寫(xiě)出下列程序段的運(yùn)行結(jié)果
該語(yǔ)句是專用于循環(huán)結(jié)構(gòu)中改變某一次循環(huán)流程的語(yǔ)句。其作用是:使程序流程提前結(jié)束本次循環(huán)從而開(kāi)始下一次循環(huán)。continue語(yǔ)句2main(){intn;for(n=100;n<=200;n++){if(n%3!=0)continue;printf(“%4d\n”,n);}
105108111114117120123……
該語(yǔ)句是專用于循環(huán)結(jié)構(gòu)中改變某一次循環(huán)流程的語(yǔ)句。其作用是:使程序流程提前結(jié)束本次循環(huán)從而開(kāi)始下一次循環(huán)。continue語(yǔ)句2main(){intn;for(n=100;n<=200;n++){if(n%3!=0)continue;printf(“%4d\n”,n);}
105108111114117120123……main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 厚街工廠蔬菜配送合同范本
- 建委出租合同范本
- 建立倉(cāng)庫(kù)績(jī)效考核機(jī)制計(jì)劃
- 火災(zāi)應(yīng)急指南教育培訓(xùn)
- 建筑設(shè)計(jì)師個(gè)人工作計(jì)劃
- 有效管理年度工作計(jì)劃
- 樣板房驗(yàn)收會(huì)簽表
- 2023年中級(jí)經(jīng)濟(jì)師之中級(jí)經(jīng)濟(jì)師金融專業(yè)題庫(kù)附完整答案(全優(yōu))
- 人教版小學(xué)數(shù)學(xué)教案1-6年級(jí)教案:練習(xí)課(練習(xí)十六)【教案】
- 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(SQL Server )2.1
- 職業(yè)生涯規(guī)劃與求職就業(yè)指導(dǎo)智慧樹(shù)知到答案章節(jié)測(cè)試2023年中南大學(xué)
- GA 1804-2022危險(xiǎn)化學(xué)品生產(chǎn)企業(yè)反恐怖防范要求
- 廣東東莞市南城社區(qū)衛(wèi)生服務(wù)中心招考聘用納入崗位管理編制外人員50筆試參考題庫(kù)答案解析版
- 檔案轉(zhuǎn)移通知單回執(zhí)單
- 銅川福順建材年產(chǎn)300萬(wàn)噸骨料生產(chǎn)線及配套礦山項(xiàng)目環(huán)評(píng)報(bào)告
- 幼兒心理疏導(dǎo)內(nèi)容記錄【七篇】
- 2023年甘肅二造《建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)(土木建筑)》考試重點(diǎn)題庫(kù)200題(含解析)
- GB/T 20863.5-2007起重機(jī)械分級(jí)第5部分:式和門式起重機(jī)
- 《人工智能導(dǎo)論》課程教學(xué)大綱
- 工傷認(rèn)定申請(qǐng)表-空白表
- 《行政能力測(cè)試》課件
評(píng)論
0/150
提交評(píng)論