孫明英
摘 要:本文就程序設(shè)計(jì)中循環(huán)結(jié)構(gòu)的原理進(jìn)行了剖析,特別對(duì)于死循環(huán)及循環(huán)語句結(jié)合條件語句的應(yīng)用進(jìn)行原理性的推理。
關(guān)鍵詞:循環(huán)過程 死循環(huán)
在我們處理問題的過程中,常常會(huì)遇到這樣一些情況:對(duì)于某類問題,處理的方法和步驟完全一樣,只是要求重復(fù)執(zhí)行多次,并且每次使用的數(shù)據(jù)按照一定的規(guī)律在變化,這就是一個(gè)循環(huán)過程。
循環(huán)結(jié)構(gòu)的流程圖如下:
循環(huán)結(jié)構(gòu)流程圖所表示的含義是:當(dāng)滿足條件時(shí),不斷執(zhí)行A框。一旦條件不滿足時(shí),就不再執(zhí)行A框,結(jié)束本基本結(jié)構(gòu),而執(zhí)行它下面的結(jié)構(gòu)。
不論是循環(huán)次數(shù)已知的情況,還是循環(huán)次數(shù)未知的情況,都存在一個(gè)循環(huán)變量來控制循環(huán)次數(shù),而由這個(gè)循環(huán)變量的變化來改變循環(huán)條件,使得程序能正常退出循環(huán)。用循環(huán)語句編程時(shí),最忌諱的是程序陷入死循環(huán)而不能正常結(jié)束。
死循環(huán)是在循環(huán)過程中,循環(huán)變量的值不會(huì)發(fā)生變化,此時(shí)的循環(huán)永不停止的一種情況。導(dǎo)致死循環(huán)的原因有很多,最根本的是循環(huán)變量沒有發(fā)生變化或重復(fù)在一定范圍內(nèi)變化而使得程序不能達(dá)到循環(huán)結(jié)束的條件,而不一定非得是循環(huán)變量為零。如在BASIC語言程序中的如下程序段即是這樣(BASIC語言程序是按行號(hào)順序執(zhí)行的)。
10 for i=1 to 5 step 0.5
20 i=int(i+0.5)*0.5)
30 print i
40 next i
在使用循環(huán)編程的過程中,我們也常忌諱通過條件語句從循環(huán)體外轉(zhuǎn)向循環(huán)體外,因?yàn)檎5囊?guī)則是:可以從循環(huán)體內(nèi)通過條件語句轉(zhuǎn)向循環(huán)體外。但在研究這些問題時(shí),我們不能只注重形式,應(yīng)該去剖析它的原理。如在BASIC語言中有如下程序段:
10 for i=1 to 10
20 if i<8 then 50
30 print i
40 next i
50 print i*2
60 goto 40
這段程序依然能夠正常運(yùn)行,原因是:雖然形式上看似乎是從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),但從原理上分析可知當(dāng)循環(huán)變量的值小于8時(shí),輸出其值的2倍,相反則輸出其本身。在該程序段中每一次循環(huán)變量的值發(fā)生改變,相應(yīng)的都能找到對(duì)應(yīng)的輸出語句,并及時(shí)返回到循環(huán)終端語句,沒有違反循環(huán)語句的使用規(guī)則,所以能正常運(yùn)行。
不論是在BASIC語言中,還是在其他編程語言中,編程原理都是一樣的。在程序設(shè)計(jì)語言中,循環(huán)結(jié)構(gòu)是一個(gè)重要組成部分,尤其在這一塊,很多題型,大量練習(xí)都分布在這兒。在指導(dǎo)學(xué)生編程的過程中,除了引導(dǎo)學(xué)生對(duì)不同的題型運(yùn)用不同的方法進(jìn)行分析外,重點(diǎn)讓學(xué)生掌握循環(huán)結(jié)構(gòu)中循環(huán)語句的格式及其使用原理,這樣才能使學(xué)生以不變應(yīng)萬變,融會(huì)貫通,從而提高學(xué)生的程序設(shè)計(jì)方面的應(yīng)用和創(chuàng)新能力。
參考文獻(xiàn):《BASIC語言程序設(shè)計(jì)》.電子工業(yè)出版社出版
作者單位:河北省陽原縣職教中心