摘 要:循環(huán)結(jié)構(gòu)是C語(yǔ)言程序設(shè)計(jì)課程教學(xué)的重要內(nèi)容,包括循環(huán)語(yǔ)句、循環(huán)嵌套等等。本文簡(jiǎn)述了在教學(xué)實(shí)踐中如何講解C語(yǔ)言循環(huán)結(jié)構(gòu)的經(jīng)驗(yàn)和方法,并且總結(jié)了學(xué)生在學(xué)習(xí)過(guò)程中遇到的常見問(wèn)題以及解決方法。
關(guān)鍵詞:C語(yǔ)言;教學(xué);循環(huán);嵌套
一、引言
在目前專業(yè)課的課時(shí)普遍削減的趨勢(shì)下,C語(yǔ)言教學(xué)的重點(diǎn)應(yīng)該在于如何利用有限的課時(shí),讓學(xué)生迅速掌握C語(yǔ)言的基本語(yǔ)法和編程技法,并學(xué)以致用。學(xué)生前期學(xué)習(xí)了順序結(jié)構(gòu)和選擇結(jié)構(gòu)之后,具備了一些基本的編程能力,但是還不足以求解類似累加、累乘等一些需要做大量重復(fù)性操作的問(wèn)題。C語(yǔ)言提供了循環(huán)結(jié)構(gòu),它是最重要的一個(gè)控制結(jié)構(gòu),專門用于完成重復(fù)性的操作。應(yīng)注意引導(dǎo)學(xué)生盡量把復(fù)雜的求解過(guò)程轉(zhuǎn)換為一些重復(fù)性的、易于理解的簡(jiǎn)單操作,再采用循環(huán)結(jié)構(gòu)編寫程序。
二、while語(yǔ)句
C語(yǔ)言一共有3種循環(huán)語(yǔ)句:while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句。學(xué)習(xí)循環(huán)結(jié)構(gòu)時(shí)應(yīng)該提醒學(xué)生注意,一定要掌握它的一些要素,即循環(huán)體、循環(huán)初值、循環(huán)條件和循環(huán)次數(shù)。while語(yǔ)句屬于“當(dāng)型”循環(huán),當(dāng)循環(huán)條件成立時(shí),就不斷地執(zhí)行循環(huán)體。它的一般形式為:
while(表達(dá)式)
循環(huán)體
執(zhí)行流程是,先計(jì)算表達(dá)式即循環(huán)條件,如果為真則執(zhí)行循環(huán)體,周而復(fù)始;如果表達(dá)式的值為假,則退出此循環(huán)結(jié)構(gòu)。舉例求1+2+3+4+5+…+100,部分程序代碼如下:
int sum=0,i=1;
while(ilt;=100)" /*使用while語(yǔ)句,當(dāng)ilt;=100時(shí),重復(fù)執(zhí)行如下語(yǔ)句*/
{sum=sum+i;" /*累加*/
i++;" /*當(dāng)前相加的數(shù)+1*/
}
printf(\"sum is %d\n\",sum);
引導(dǎo)學(xué)生在程序中分析循環(huán)體、循環(huán)初值、循環(huán)條件和循環(huán)次數(shù)這幾個(gè)要素,提醒他們?cè)谘h(huán)語(yǔ)句中一定要設(shè)置使循環(huán)最終結(jié)束的語(yǔ)句,避免出現(xiàn)死循環(huán)(即永不停止地循環(huán))。
三、do-while語(yǔ)句
do-while語(yǔ)句屬于“直到型”循環(huán),不斷地執(zhí)行循環(huán)體,直到循環(huán)條件不成立為止。它的一般形式為:
do
循環(huán)體
while(表達(dá)式);
執(zhí)行流程是:先執(zhí)行循環(huán)體,再計(jì)算表達(dá)式,如果為真則周而復(fù)始;如果表達(dá)式的值為假,則退出此循環(huán)結(jié)構(gòu)。再次舉例求1+2+3+4+5+…+100,部分程序代碼如下:
int sum=0,i=1;
do
{sum=sum+i;" /*累加*/
i++;" /*當(dāng)前相加的數(shù)+1*/
}while(ilt;=100);
printf(\"sum is %d\n\",sum);
提醒學(xué)生注意do-while語(yǔ)句與while語(yǔ)句的區(qū)別,由于do-while是先執(zhí)行循環(huán)體后判斷循環(huán)條件,所以它的循環(huán)體至少執(zhí)行一次,而while語(yǔ)句的循環(huán)體有可能一次也不執(zhí)行。如果需要先執(zhí)行再判斷循環(huán)條件,例如登錄系統(tǒng)時(shí)需要先輸入用戶名和密碼,再進(jìn)行身份校驗(yàn),則采用do-while語(yǔ)句較為合適。
四、for語(yǔ)句
for語(yǔ)句屬于“計(jì)數(shù)”循環(huán),不斷地執(zhí)行循環(huán)體,當(dāng)循環(huán)次數(shù)達(dá)到上限后就退出循環(huán)。它的語(yǔ)法簡(jiǎn)潔而又靈活,建議學(xué)生合理地使用for語(yǔ)句,寫出精練、高質(zhì)量的程序。for語(yǔ)句的一般形式為:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán)體
執(zhí)行流程是:(1)計(jì)算表達(dá)式1,(2)計(jì)算表達(dá)式2,若其值為真,轉(zhuǎn)到步驟(3);若其值為假,則結(jié)束循環(huán)。(3)執(zhí)行循環(huán)體。(4)計(jì)算表達(dá)式3,然后轉(zhuǎn)到步驟(2)。再次舉例求1+2+3+4+5+…+100,部分程序代碼如下:
int sum,i;
for(i=1,sum=0;ilt;=100;i++)
sum=sum+i;" /*累加*/
printf(\"sum is %d\n\",sum);
表達(dá)式1稱為初值表達(dá)式,只計(jì)算一次,用于設(shè)置初值。表達(dá)式2是循環(huán)條件,表達(dá)式3稱為修正表達(dá)式,用于修正循環(huán)條件,使得程序的執(zhí)行能夠最終退出循環(huán)。引導(dǎo)學(xué)生分析for語(yǔ)句的適用場(chǎng)合,如果事先知道循環(huán)次數(shù),則采用for語(yǔ)句較為合適,這時(shí)一般有一個(gè)計(jì)數(shù)器,用于記錄循環(huán)次數(shù)。
五、循環(huán)嵌套
循環(huán)嵌套又稱為多重循環(huán),是指在循環(huán)體中又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)。通常把嵌套在循環(huán)體內(nèi)的循環(huán)結(jié)構(gòu)稱為內(nèi)循環(huán),把外層的循環(huán)結(jié)構(gòu)稱為外循環(huán)。while、do-while和for三種循環(huán)語(yǔ)句都可以相互嵌套,大多數(shù)情況下最多使用二重循環(huán)就可以解決問(wèn)題。應(yīng)提醒學(xué)生注意,掌握循環(huán)嵌套的關(guān)鍵在于理解其循環(huán)執(zhí)行的特點(diǎn),二重循環(huán)執(zhí)行時(shí)并不是外循環(huán)和內(nèi)循環(huán)輪流執(zhí)行一次,而是外循環(huán)每循環(huán)一次,內(nèi)循環(huán)都要反復(fù)循環(huán)直到結(jié)束,再回到外循環(huán)。舉例打印九九乘法口訣表,部分程序代碼如下:
for(i=1;ilt;=9;i++) /*控制輸出行*/
{for(j=1;jlt;=i;j++)/*輸出該行的內(nèi)容*/
printf(\"%2d*%2d=%2d\",j,i,i*j);
printf(\"\n\");/*每行結(jié)束后,輸出換行*/
}
引導(dǎo)學(xué)生重點(diǎn)分析兩個(gè)循環(huán)變量i和j的變化情況,i控制外層for語(yǔ)句的循環(huán)次數(shù),總共循環(huán)輸出9行。j控制內(nèi)層for語(yǔ)句的循環(huán)次數(shù),對(duì)于第i行,內(nèi)層for語(yǔ)句應(yīng)循環(huán)i次。
六、結(jié)語(yǔ)
循環(huán)結(jié)構(gòu)是C語(yǔ)言最重要的一種控制結(jié)構(gòu),用于實(shí)現(xiàn)需要重復(fù)執(zhí)行某些操作的程序。以上闡述了三種循環(huán)語(yǔ)句教學(xué)的實(shí)施方法,分析了這些語(yǔ)句各自的特點(diǎn)及適用場(chǎng)合。通過(guò)三種循環(huán)語(yǔ)句的運(yùn)用對(duì)比,推薦學(xué)生多使用for語(yǔ)句,它的結(jié)構(gòu)較為緊湊、規(guī)范,有助于學(xué)生養(yǎng)成良好的編寫循環(huán)程序的習(xí)慣。在教學(xué)中應(yīng)該注意選取合適的案例,引導(dǎo)學(xué)生了解C語(yǔ)言循環(huán)結(jié)構(gòu)的特點(diǎn),在程序設(shè)計(jì)中正確運(yùn)用。
參考文獻(xiàn):
[1] 王曉東. C程序設(shè)計(jì)簡(jiǎn)明教程(第二版)[M].北京:中國(guó)水利水電出版社, 2008.