資源描述:
《第5章_循環(huán)結(jié)構(gòu)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第5章循環(huán)結(jié)構(gòu)goto語句構(gòu)成循環(huán)非結(jié)構(gòu)化程序設(shè)計(jì)的方式來構(gòu)成循環(huán),即使用無條件轉(zhuǎn)移語句goto語句。一般格式:goto語句標(biāo)號goto語句說明作用是將程序的控制流轉(zhuǎn)移到在goto語句中制定的標(biāo)號后之后的第一條語句;標(biāo)號是跟有“:”的標(biāo)識符,它必須與引用它的goto語句在同一個函數(shù)中,但可以不在同一個循環(huán)層中。4.1while循環(huán)結(jié)構(gòu)一般形式:while(表達(dá)式)循環(huán)體語句;執(zhí)行流程:expr循環(huán)體假(0)真(非0)while特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體說明:循環(huán)體有可能一次也不執(zhí)行循環(huán)體可為任意類型語句下列情況,退出wh
2、ile循環(huán)條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,return,goto在循環(huán)體內(nèi)必須要有使循環(huán)結(jié)束的語句,如果無此語句則循環(huán)便成了“無限循環(huán)”無限循環(huán):while(1)循環(huán)體;例用while循環(huán)求/*ch5_2.c*/#includemain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體注意:循環(huán)控制變量值在循環(huán)體內(nèi)必須有所改變。例如:請問下例中循環(huán)結(jié)束時i值為多少?i=1;w
3、hile(i<=100)putchar(‘*’);i++;這個循環(huán)永遠(yuǎn)不會結(jié)束,因?yàn)檠h(huán)控制變量i沒有在循環(huán)體內(nèi)被改變,i++;不屬于循環(huán)語句。i++應(yīng)該在循環(huán)體內(nèi)改變:{}do循環(huán)體語句;while(表達(dá)式);執(zhí)行流程:do循環(huán)體expr假(0)真(非0)while4.2do…while循環(huán)結(jié)構(gòu)一般形式:特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式說明:至少執(zhí)行一次循環(huán)體do~while可轉(zhuǎn)化成while結(jié)構(gòu)expr循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)例用do~while循環(huán)求/*ch5_3.c*/#include4、h>main(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}例while和do~while比較/*ch5_4.c*/#includemain(){inti,sum=0;scanf("%d",&i);do{sum+=i;i++;}while(i<=10);printf("%d",sum);}#includemain(){inti,sum=0;scanf("%d",&i);while(i<=10){sum+=i;i
5、++;}printf("%d",sum);}1、跳出循環(huán)時循環(huán)控制變量的值應(yīng)為多少?如果輸入值為1,10,20時呢?2、輸出結(jié)果呢?1.while結(jié)構(gòu)與do-while循環(huán)結(jié)構(gòu)相類似.2.但要注意區(qū)別:前者:先判斷表達(dá)式,再執(zhí)行語句。至少要執(zhí)行0次后者:先執(zhí)行語句,再判斷表達(dá)式。至少要執(zhí)行1次。3.也就是說用兩種循環(huán)結(jié)構(gòu)處理同一問題時,若二者的循環(huán)體部分是一樣的,當(dāng)while后面表達(dá)式的第一次的值為“真(非0)”時,兩種循環(huán)結(jié)構(gòu)得到的結(jié)果相同,否則二者的結(jié)果不相同。While與do–while循環(huán)結(jié)構(gòu)的比較4.3for循環(huán)結(jié)構(gòu)
6、一般形式:for([expr1];[expr2];[expr3])循環(huán)體語句;執(zhí)行流程:for(循環(huán)變量賦初值;循環(huán)條件;改變循環(huán)變量)表達(dá)式1表達(dá)式2循環(huán)體表達(dá)式3TFfor語句一般應(yīng)用形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值){循環(huán)體語句;}說明:for語句中expr1,expr2,expr3類型任意,都可省略,但分號;不可省無限循環(huán):for(;;)for語句可以轉(zhuǎn)換成while結(jié)構(gòu)expr1;while(expr2){循環(huán)體語句;expr3;}例用for循環(huán)求#includemain(){i
7、nti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}例:#includemain(){inti;for(i=0;i<10;i++)putchar(‘a(chǎn)’+i);}運(yùn)行結(jié)果:abcdefghij例:#includemain(){inti=0;for(;i<10;i++)putchar(‘a(chǎn)’+i);}例:#includemain(){inti=0;for(;i<10;)putchar(‘a(chǎn)’+(i++));}例:#inc
8、ludemain(){inti=0;for(;i<10;putchar(‘a(chǎn)’+i),i++);}逗號運(yùn)算符的主要應(yīng)用在for語句中的表達(dá)式1或表達(dá)式3建議為了增強(qiáng)程序的可讀性,盡量不省略for結(jié)構(gòu)中的表達(dá)式。main(){inti,j,k;for(i=0,