蘇文麗
循環(huán)語(yǔ)句有直到型(UNTII,)和當(dāng)型(WHILE)兩種,分別對(duì)應(yīng)于程序框圖中的直到型循環(huán)結(jié)構(gòu)和當(dāng)型循環(huán)結(jié)構(gòu),這兩種語(yǔ)句是可以相互轉(zhuǎn)化的。
一、循環(huán)語(yǔ)句解讀
1.當(dāng)型循環(huán)語(yǔ)句當(dāng)型(WHILE型)語(yǔ)句的一般格式為:
說(shuō)明:WHILE循環(huán)是先判斷條件是否成立,如果成立,則執(zhí)行WHILE和WEND之間的循環(huán)體,然后返回到WHILE語(yǔ)句再判斷上述條件是否成立,若條件不成立,則不執(zhí)行循環(huán)體,執(zhí)行WEND后面的語(yǔ)句。2.直到型循環(huán)語(yǔ)句直到型(UNTIL型)語(yǔ)句的一般格式為:
說(shuō)明:UNTIL循環(huán)是先執(zhí)行循環(huán)體,然后判斷條件是否成立,如果條件不成立,返回DO語(yǔ)句處重新執(zhí)行循環(huán)體,若條件成立,則退出循環(huán)。
二、循環(huán)語(yǔ)句編寫(xiě)實(shí)例
例1 試分別用WHILE與UNTIL語(yǔ)句,編寫(xiě)s=1+2+…+100的算法程序。
解:WHILE型循環(huán)語(yǔ)句:點(diǎn)撥:(1)在循環(huán)條件中i的范圍的確定是容易出錯(cuò)的地方。同學(xué)們可以嘗試把所求問(wèn)題縮小,如計(jì)算s=l十2+3+4+5,來(lái)找出i的不同所引發(fā)的s的差異和規(guī)律。
(2)循環(huán)語(yǔ)句書(shū)寫(xiě)時(shí)要注意循環(huán)標(biāo)志(如WHILE/WEND)的對(duì)應(yīng)性,以保持程序的可讀性。
例2 試用WHILE語(yǔ)句編寫(xiě)程序,求s=1!1+2!1+…+10!的值。(n!=1×2×3×…×n,讀作“n的階乘”)
解:本題是求10個(gè)正整數(shù)的階乘之和,解題時(shí)要注意兩個(gè)問(wèn)題:①處理“n!”的值;②累加“n!”的值。解題時(shí)需要用兩個(gè)循環(huán)語(yǔ)句來(lái)完成,以循環(huán)語(yǔ)句的嵌套來(lái)實(shí)現(xiàn)。先通過(guò)10次循環(huán)分別求…1!,2!,…,10!的值,再同時(shí)進(jìn)行累加,求得s的值。
算法程序如下:
點(diǎn)撥:(1)通過(guò)內(nèi)循環(huán)變量j,t,求出n!。(2)通過(guò)外循環(huán)變量s,i,累加n!,求出s。(3)在循環(huán)嵌套時(shí),循環(huán)語(yǔ)句不能交錯(cuò)。