許桂平
摘 要: C語(yǔ)言是一種廣泛使用的高級(jí)程序設(shè)計(jì)語(yǔ)言,文章對(duì)C語(yǔ)言中三種循環(huán)結(jié)構(gòu)語(yǔ)句進(jìn)行了分析和比較,使學(xué)生更容易理解和掌握。
關(guān)鍵詞: C語(yǔ)言 for循環(huán) while循環(huán) do-while循環(huán)
一、引言
C語(yǔ)言是一種廣泛使用的程序設(shè)計(jì)語(yǔ)言,它具有功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、目標(biāo)程序效率高等特點(diǎn)。像許多計(jì)算機(jī)語(yǔ)言一樣,C語(yǔ)言有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。在這三種基本結(jié)構(gòu)中,循環(huán)結(jié)構(gòu)是最難理解的。
C語(yǔ)言中循環(huán)結(jié)構(gòu)分為三種語(yǔ)句for,while,do-while。這三種語(yǔ)句都可以完成循環(huán)結(jié)構(gòu)的功能,但在語(yǔ)法、程序流程等方面存在異同點(diǎn)。本文對(duì)這三種語(yǔ)句進(jìn)行了分析和比較。
一般來(lái)講,循環(huán)結(jié)構(gòu)程序設(shè)計(jì)要考慮兩個(gè)方面的問(wèn)題:①循環(huán)條件:循環(huán)條件是循環(huán)結(jié)構(gòu)設(shè)計(jì)的關(guān)鍵,它決定循環(huán)體重復(fù)執(zhí)行的次數(shù)。循環(huán)條件常常由關(guān)系表達(dá)式或邏輯表達(dá)式表示;②循環(huán)體:需要重復(fù)執(zhí)行的工作。它可以是一組順序結(jié)構(gòu)的語(yǔ)句,也可以是一組具有選擇結(jié)構(gòu)的語(yǔ)句,甚至還可以是一組具有循環(huán)結(jié)構(gòu)的語(yǔ)句。
循環(huán)結(jié)構(gòu)程序設(shè)計(jì)就是要正確描述循環(huán)條件,并分析問(wèn)題的規(guī)律性,利用C語(yǔ)言提供的循環(huán)控制語(yǔ)句發(fā)揮具體的功能。
二、while循環(huán)和do-while循環(huán)的比較
從while循環(huán)的流程圖(圖1)和do-while循環(huán)的流程圖(圖2)可以看出while語(yǔ)句用于構(gòu)成“當(dāng)型”循環(huán)結(jié)構(gòu),do-while語(yǔ)句用于構(gòu)成“直到型”循環(huán)。
2.循環(huán)的執(zhí)行過(guò)程
while循環(huán)的執(zhí)行過(guò)程為:首先計(jì)算條件表達(dá)式(循環(huán)條件)的值,若結(jié)果為“真”(非零),則執(zhí)行循環(huán)體語(yǔ)句;然后再次計(jì)算表達(dá)式的值,重復(fù)上述過(guò)程,直到表達(dá)式的值為“假”(零)時(shí)結(jié)束循環(huán),流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一語(yǔ)句。
do-while循環(huán)的執(zhí)行過(guò)程為:首先執(zhí)行一次循環(huán)體語(yǔ)句,然后計(jì)算條件表達(dá)式(循環(huán)條件)的值。若結(jié)果為“真”(非零),則再次執(zhí)行循環(huán)體,再計(jì)算表達(dá)式的值,如此重復(fù)下去,直到表達(dá)式的值為“假”(零)時(shí),循環(huán)結(jié)束,流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一語(yǔ)句。
3.兩種循環(huán)的相同點(diǎn)
循環(huán)體內(nèi)一定要有改變循環(huán)繼續(xù)條件的語(yǔ)句,使得循環(huán)趨向于結(jié)束,否則循環(huán)將無(wú)休止地進(jìn)行下去,即形成“死循環(huán)”。
為使循環(huán)正確運(yùn)行,還要做好循環(huán)前的準(zhǔn)備工作,在循環(huán)語(yǔ)句開(kāi)始前要給循環(huán)控制變量和相關(guān)的變量賦初值。
4.兩種循環(huán)的不同點(diǎn)
while循環(huán)結(jié)構(gòu)的特點(diǎn)是“先判斷,后執(zhí)行”,如果條件表達(dá)式的值一開(kāi)始就為“假”,則循環(huán)體一次也不執(zhí)行;do-while循環(huán)結(jié)構(gòu)的特點(diǎn)是“先執(zhí)行,后判斷”,如果條件表達(dá)式的值一開(kāi)始就為“假”,則循環(huán)體仍要執(zhí)行一次。
三、for循環(huán)和while循環(huán)的比較
for語(yǔ)句是C語(yǔ)言提供的另一種應(yīng)用靈活、功能強(qiáng)大的構(gòu)成“當(dāng)型”循環(huán)結(jié)構(gòu)的循環(huán)語(yǔ)句。
1.循環(huán)格式
for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>)
<循環(huán)體語(yǔ)句>;
2.功能
首先進(jìn)行表達(dá)式1的運(yùn)算,然后計(jì)算表達(dá)式2的值,若結(jié)果為真(非零),則執(zhí)行循環(huán)體語(yǔ)句,最后進(jìn)行表達(dá)式3的運(yùn)算。然后回頭再次計(jì)算表達(dá)式2的值,若結(jié)果為“真”(非零),再執(zhí)行循環(huán)體語(yǔ)句,最后進(jìn)行表達(dá)式3的運(yùn)算,然后再回頭,如此循環(huán)重復(fù)下去,直到計(jì)算表達(dá)式2的結(jié)果為“假”(零)時(shí),循環(huán)結(jié)束,流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一語(yǔ)句,其流程如圖3所示。
表達(dá)式1和表達(dá)式3通常是賦值表達(dá)式,一般用來(lái)實(shí)現(xiàn)對(duì)循環(huán)控制變量初始化和循環(huán)控制變量增(減)值。表達(dá)式2常常是關(guān)系表達(dá)式或邏輯表達(dá)式,但可以是其他類型的表達(dá)式,它表示循環(huán)繼續(xù)的條件,只要其值為非零,就可執(zhí)行循環(huán)體,否則退出循環(huán)。
3.for循環(huán)和while循環(huán)的比較
for循環(huán)結(jié)構(gòu)和while循環(huán)結(jié)構(gòu)一樣,也具有“先判斷,后執(zhí)行”的特點(diǎn)。for循環(huán)結(jié)構(gòu)相當(dāng)于如下形式的while結(jié)構(gòu):
四、三種循環(huán)結(jié)構(gòu)的比較
實(shí)際應(yīng)用中用到的大多數(shù)循環(huán)通常分為兩類:次數(shù)確定的循環(huán)和次數(shù)不確定的循環(huán)。
次數(shù)確定的循環(huán),又稱計(jì)數(shù)型循環(huán),通常采用計(jì)數(shù)的方式控制循環(huán)。循環(huán)控制變量用來(lái)控制循環(huán)的次數(shù),循環(huán)控制變量要有:初始值、每次變化的增量及控制循環(huán)是否終止的終值和測(cè)試條件。這類循環(huán)通常采用for循環(huán)結(jié)構(gòu)實(shí)現(xiàn),當(dāng)然也可以采用while和do-while循環(huán)結(jié)構(gòu)。
次數(shù)不確定的循環(huán),又稱條件型循環(huán),通常采用標(biāo)記值的方式控制循環(huán)。標(biāo)記值表示繼續(xù)循環(huán)的條件。標(biāo)記值必須不同于正常的數(shù)據(jù)項(xiàng),以免發(fā)生混淆。這類循環(huán)通常采用while循環(huán)結(jié)構(gòu)和do-while循環(huán)結(jié)構(gòu)實(shí)現(xiàn),當(dāng)然也可以采用for循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。
三種循環(huán)結(jié)構(gòu)是可以相互轉(zhuǎn)換的,for循環(huán)比while循環(huán)和do-while循環(huán)更為簡(jiǎn)潔而高效,因而應(yīng)用得更為廣泛。
五、結(jié)語(yǔ)
C語(yǔ)言循環(huán)結(jié)構(gòu)是用C語(yǔ)言編程的基石,通過(guò)比較學(xué)習(xí),學(xué)生可以提高學(xué)習(xí)效率,為以后編寫(xiě)出緊湊、高效程序打下堅(jiān)實(shí)基礎(chǔ)。
參考文獻(xiàn):
[1]朱榮娟.淺析C語(yǔ)言循環(huán)結(jié)構(gòu)教學(xué)思路.高中生學(xué)習(xí)師者,2013.12.
[2]袁國(guó)偉.C語(yǔ)言循環(huán)結(jié)構(gòu)中for語(yǔ)句與while語(yǔ)句辨析.科技信息,200612.
[3]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)教程.高等教育出版社,2002.