-循環(huán)語句(“直到”型循環(huán))
5.2 do-while循環(huán)語句(“直到”型循環(huán))
do-while循環(huán)語句的一般形式如下:
do
語句(即循環(huán)體)
while(表達(dá)式);
其中,do、while是關(guān)鍵字,語句可以是一條語句,也可以是由多條語句組成的復(fù)合語句。while后面的“;”一定要有。
這個循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)執(zhí)行。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)體中的語句。
do-while語句的具體執(zhí)行過程如圖5-2所示。
圖5-2
該語句的執(zhí)行過程是:先執(zhí)行循環(huán)體,再計(jì)算while后面圓括號內(nèi)表達(dá)式的值,如果其值為真,則再次執(zhí)行循環(huán)體,如此重復(fù),直到表達(dá)式的值為假時結(jié)束循環(huán)。該循環(huán)結(jié)構(gòu)的特點(diǎn)是先執(zhí)行循環(huán)體。后判斷表達(dá)式的值,所以循環(huán)體至少將被執(zhí)行一次。
【例5-4】用do-while語句計(jì)算1~100自然數(shù)之和。
程序運(yùn)行結(jié)果:
1+2+…+100=5050
和while語句一樣,用do-while語句編程時,應(yīng)注意對循環(huán)控制變量進(jìn)行值的修改。當(dāng)循環(huán)體包含多條語句時,應(yīng)用{}括起來組成復(fù)合語句。do-while語句是以do開始,以while條件后的分號結(jié)束的。
由do-while構(gòu)成的循環(huán)與while循環(huán)的重要區(qū)別是:
while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面表達(dá)式的值為真時,才執(zhí)行循環(huán)體;在do-while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后判斷循環(huán)條件是否成立。因此說,在do-while構(gòu)成的循環(huán)中無論循環(huán)條件是否成立,循環(huán)體都將會至少執(zhí)行一次。
【例5-5】while和do-while循環(huán)的比較:求1+2+3+…+n的和,n的值從鍵盤上輸入。
從上述例題可以看出:對于同一個問題,可以用while處理,也可以用do-while來處理。這兩種結(jié)果是可以互相轉(zhuǎn)換的。在一般情況下,用while語句和do-while語句處理同一問題時,若二者的循環(huán)體部分一樣,它們的結(jié)果也是一樣。但當(dāng)while語句的條件(表達(dá)式)一開始就不成立(為假)時,兩種循環(huán)的結(jié)果是不同的。
使用do-while語句時應(yīng)注意:
(1)do-while循環(huán)是先執(zhí)行循環(huán)體,而后判斷表達(dá)式的值,所以循環(huán)體至少被行一次。所以屬于“直到”型循環(huán)。
(2)其他同while循環(huán)比較來看,在循環(huán)條件不成立的條件下,do~while語句會無條件地執(zhí)行一次。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。