《C語言程序設(shè)計(jì)》課件第四章11_第1頁
《C語言程序設(shè)計(jì)》課件第四章11_第2頁
《C語言程序設(shè)計(jì)》課件第四章11_第3頁
《C語言程序設(shè)計(jì)》課件第四章11_第4頁
《C語言程序設(shè)計(jì)》課件第四章11_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第四章循環(huán)語句和轉(zhuǎn)移語句本章內(nèi)容

循環(huán)的概念

for循環(huán)

while循環(huán)

do-while循環(huán)內(nèi)容(續(xù))

break語句

continue語句多重循環(huán)

goto語句流程圖假(0)表達(dá)式為真嗎?語句真(非0)

就是重復(fù)地執(zhí)行某些語句的過程。循環(huán):4.1循環(huán)的概念例如:計(jì)算數(shù)學(xué)式s=1+2+3的值將上式用C語言表示。

s=0;for(i=1;i<=3;){s=s+i;i++;}

重復(fù)執(zhí)行!

結(jié)果:s=1

結(jié)果:s=3最后結(jié)果:s=64.2for循環(huán)for循環(huán)通過for語句實(shí)現(xiàn)。for語句的一般格式為:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句說明:①表達(dá)式1用于循環(huán)賦初始值,它只能執(zhí)行一次;②表達(dá)式2是循環(huán)條件;③表達(dá)式3用于對(duì)循環(huán)條件的修改,以使循環(huán)能于結(jié)束。例如:求從1加到100的程序。

程序如下:#include“stdio.h”voidmain(){ints,i;s=0;for(i=1;i<=100;i++) s=s+i;printf(″sum=%d″,s);}

循環(huán)體!結(jié)果:sum=5050對(duì)for語句作幾點(diǎn)說明:(1)可以把表達(dá)式1改為表達(dá)式語句,然后移出for語句,放到for語句之前。表達(dá)式1因此被缺省,但其后的分號(hào)不能缺省。例如:…s=0,i=1;for(;i<=100;i++) s=s+i;對(duì)for語句作幾點(diǎn)說明(續(xù))(2)表達(dá)式2如果缺省(但分號(hào)不能缺省),就相當(dāng)于表達(dá)式2永遠(yuǎn)為非0(“真”),從而循環(huán)無終止地進(jìn)行下去。例如:

s=0;for(i=1;;i++) s=s+i;(3)可以把表達(dá)式3改為表達(dá)式語句移到循環(huán)體的尾部,作為循環(huán)體的一部分。例如:

s=0;for(i=1;i<=100;){s=s+i;i++;

}對(duì)for語句作幾點(diǎn)說明(續(xù)):對(duì)for語句作幾點(diǎn)說明(續(xù)):

(4)可以把與循環(huán)控制變量無關(guān)的循環(huán)初始化操作放入表達(dá)式1中,也可以把循環(huán)體中與循環(huán)變量無關(guān)的操作放到表達(dá)式3中。例如:

for(s=0,i=1;i<=100;i++) s=s+i;

其中,“s=0,i=1”是逗號(hào)表達(dá)式。對(duì)for語句作幾點(diǎn)說明(續(xù)):(5)如果循環(huán)體中沒有任何語句,則應(yīng)該加一個(gè)分號(hào)。例如:

s=0;for(i=1;i<=100;s=s+i,i++);此分號(hào)不能少!4.3while循環(huán)while循環(huán)通過while語句實(shí)現(xiàn)。while語句的一般格式為:

while(表達(dá)式)語句while語句的執(zhí)行過程為:

(1)計(jì)算并判斷表達(dá)式的值。若值為0,則結(jié)束循環(huán),退出while語句;若值為非0,則執(zhí)行循環(huán)體。

(2)轉(zhuǎn)步驟(1)。while語句的執(zhí)行過程#include“stdio.h”voidmain(){inti=3;while(i--)printf(“%d\n”,i);}例如,求從1加到100的程序。程序如下:#include“stdio.h”voidmain(){ints,i;s=0;i=1;

while(i<=100){s=s+i;i++;}printf(“Sum=%d”,s);}結(jié)果:Sum=5050關(guān)鍵字表達(dá)式循環(huán)體4.4do-while循環(huán)

do-while循環(huán)通過do-while語句實(shí)現(xiàn)。do-while語句的一般格式為:

do語句while(表達(dá)式);do-while語句的執(zhí)行過程為:

(1)執(zhí)行循環(huán)體語句。

(2)計(jì)算并判斷式表達(dá)的值。若值為0,則結(jié)束循環(huán),退出while語句;若值為非0,則轉(zhuǎn)步驟(1)執(zhí)行。do-while語句的執(zhí)行過程例如,求從1加到100的程序。程序如下:#include“stdio.h”voidmain(){ints,i;s=0;i=1;do{s=s+i;i++;}while(i<=100);printf(“Sum=%d”,s);}結(jié)果:Sum=5050do-while語句與while語句的本質(zhì)區(qū)別while語句是先計(jì)算并判斷表達(dá)式的值。若其值為非0,則執(zhí)行循環(huán)體;若其值為0,則退出循環(huán)。

do-while語句則首先執(zhí)行循環(huán)體,然后再計(jì)算并判斷表達(dá)式的值。因此,do-while語句至少要執(zhí)行一次循環(huán)體。4.5break語句break語句可以用于兩個(gè)地方:一個(gè)是用于switch語句中,一個(gè)是用于循環(huán)語句中。在循環(huán)語句中,break語句常與if語句配合使用,當(dāng)條件成立后就跳出循環(huán)體,提前結(jié)束循環(huán)。例如

此循環(huán)本是無限循環(huán),因加上了break語句,使程序在輸入字符常量′!′時(shí)就終止循環(huán)?!璮or(;;){scanf(“%c”,&ch);if(ch==‘!’)break;

elseprintf(“%c”,ch);}4.6continue語句continue語句用于提前結(jié)束循環(huán)中的一輪循環(huán)。當(dāng)程序執(zhí)行到continue語句時(shí),就跳過循環(huán)中后面還未執(zhí)行的語句,回到循環(huán)的起始處,繼續(xù)進(jìn)行下一輪的循環(huán)。

continue語句常與if語句聯(lián)合起來使用,以便在滿足一定條件時(shí)提前結(jié)束本輪循環(huán)。例如,對(duì)除5的倍數(shù)以外的1~100的數(shù)求和。程序如下:…s=0;for(i=1;i<=100;i++){if(!(i%5))continue;s+=i;}printf(″SUM=%d\n″,s);…當(dāng)(i%5)等于0條件成立時(shí),執(zhí)行continue語句,就跳過循環(huán)中s+=i;語句,回到循環(huán)的起始處,繼續(xù)進(jìn)行下一輪的循環(huán)4.7多重循環(huán)多重循環(huán):嵌套多層循環(huán)結(jié)構(gòu)的循環(huán)。外循環(huán):處于外層的循環(huán)稱為外循環(huán)。內(nèi)循環(huán):處于內(nèi)層的循環(huán)稱為內(nèi)循環(huán)。例:

百元買百雞

#include“stdio.h”voidmain(){intx,y,z,flag=0;for(x=1;x<=32;x++){for(y=1;y<=48;y++) {z=100-x-y; if((z%3==0&&(3*x+2*y+z/3==100)) {printf(“hen=%d,cock=%d,chicken=%d\n”,x,y,z); flag=1; break; }}if(flag)break;}}結(jié)果:hen=5cock=32chicken=63

外循環(huán)內(nèi)循環(huán)4.8goto語句

goto語句用于將控制轉(zhuǎn)到標(biāo)號(hào)所指定的語句去執(zhí)行。它的一般格式為:

…或:goto標(biāo)號(hào);…

標(biāo)號(hào):語句標(biāo)號(hào):語句…goto標(biāo)號(hào);…標(biāo)號(hào)滿足標(biāo)識(shí)符定義原則注意:

goto語句是違背結(jié)構(gòu)程序設(shè)計(jì)的語句。它將使程序的結(jié)構(gòu)不清晰。盡可能用break和continue語句代替goto

不能用goto語句從循環(huán)的外層跳到循環(huán)的內(nèi)層,否則會(huì)導(dǎo)致程序的混亂。goto語句的舉例:#include“stdio.h”voidmain(){intx,y,z;for(x=1;x<=32;x++){for(y=1;y<=48;y++) {z=100-x-y; if((z%3==0)&&(3*x+2*y+z/3==100)) {printf(“hen=%d,cock=%d,chicken=%d\n”,x,y,z); gotolaber; }}}laber:;}結(jié)果:hen=5cock=32chicken=63goto語句本章小結(jié)

for語句是一個(gè)功能最強(qiáng)的循環(huán)語句。for語句和while語句是先判斷表達(dá)式后再執(zhí)行循環(huán)體的循環(huán)語句。因此,有可能一次循環(huán)體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論