循環(huán)控制結(jié)構(gòu)(又稱重復(fù)結(jié)構(gòu))是程序中的另一個(gè)基本結(jié)構(gòu)。在實(shí)際問題中,常常需要進(jìn)行大量的重復(fù)處理,循環(huán)結(jié)構(gòu)可以使我們只寫很少的語(yǔ)句,而讓計(jì)算機(jī)反復(fù)執(zhí)行,從而完成大量類同的計(jì)算。
C語(yǔ)言提供了while語(yǔ)句、do...while語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。
3.4.1while語(yǔ)句
while語(yǔ)句是當(dāng)型循環(huán)控制語(yǔ)句,一般形式為:
while<表達(dá)式>語(yǔ)句;
語(yǔ)句部分稱為循環(huán)體,當(dāng)需要執(zhí)行多條語(yǔ)句時(shí),應(yīng)使用復(fù)合語(yǔ)句。
while語(yǔ)句的流程圖見圖3-8,其特點(diǎn)是先判斷,后執(zhí)行,若條件不成立,有可能一次也不執(zhí)行。
[例3-11]求n!
分析:n!=n*(n-1)*(n-2)*..2*1,0!=1。即S0=1,Sn=Sn-1*n?梢詮腟0開始,依次求出S1、S2、...Sn。
統(tǒng)一令S等于階乘值,S的初值為0!=1;變量i為計(jì)數(shù)器,i從1變到n,每一步令S=S*i,則最終S中的值就是n!。
流程圖見圖3-9,程序如下:
考察圖3-9中循環(huán)部分的流程圖可以看出,在循環(huán)前各變量應(yīng)有合適的值(s=1),另外,控制循環(huán)結(jié)束的變量(此處為i)必須在循環(huán)體中被改變,否則,循環(huán)將無限進(jìn)行下去,成為死循環(huán)。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |