張微
摘要:循環(huán)語(yǔ)句結(jié)構(gòu)是程序設(shè)計(jì)課程中的教學(xué)重點(diǎn)與難點(diǎn),在循環(huán)語(yǔ)句實(shí)際教學(xué)過(guò)程當(dāng)中 ,發(fā)現(xiàn)許多同學(xué)對(duì)該結(jié)構(gòu)的理解較為困難,在編程測(cè)驗(yàn)時(shí)效果不大理想。該文將結(jié)合案例的形式關(guān)于循環(huán)結(jié)構(gòu)提出一點(diǎn)建議幫助同學(xué)們加深對(duì)于該結(jié)構(gòu)的學(xué)習(xí)理解。
關(guān)鍵詞:循環(huán)結(jié)構(gòu);教學(xué)研究;程序設(shè)計(jì)
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)28-0262-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
循環(huán)語(yǔ)句是指在滿足循環(huán)條件下,可以重復(fù)執(zhí)行的代碼。當(dāng)循環(huán)條件不滿足時(shí),不再執(zhí)行循環(huán)語(yǔ)句,并退出循環(huán)結(jié)構(gòu)。正常的循環(huán)結(jié)構(gòu)中,當(dāng)循環(huán)條件不再成立時(shí),程序會(huì)返回False,以此結(jié)束循環(huán)。如果循環(huán)條件一直成立,循環(huán)語(yǔ)句會(huì)不停執(zhí)行,變成死循環(huán)[1-2]。本文分析各種循環(huán)結(jié)構(gòu)執(zhí)行的原理,有助于學(xué)生對(duì)循環(huán)語(yǔ)句的了解。
1 循環(huán)結(jié)構(gòu)教學(xué)實(shí)例
1)統(tǒng)計(jì)打印次數(shù)
2)打印乘法口訣
3)猜數(shù)字小游戲
通過(guò)與后面的知識(shí)點(diǎn)相結(jié)合做詳細(xì)的代碼介紹。
2 三種典型的循環(huán)結(jié)構(gòu)
2.1 for循環(huán)
2.1.1 for循環(huán)結(jié)構(gòu)
for(初始化表達(dá)式1;布爾表達(dá)式2;步進(jìn)表達(dá)式3){
循環(huán)體4
}
2.1.2 for循環(huán)執(zhí)行流程
執(zhí)行順序:1234>234>234...2不滿足為止。
1)循環(huán)變量初始化。
2)判斷循環(huán)條件是否滿足,若滿足,執(zhí)行3,否則,退出循環(huán)。
3)執(zhí)行循環(huán)語(yǔ)句。
4)更新循環(huán)變量。
2.1.3 for循環(huán)實(shí)例
代碼如圖1所示:
2.2 while循環(huán)
2.2.1 while循環(huán)結(jié)構(gòu)
初始化表達(dá)式1
while(布爾表達(dá)式2){
循環(huán)體3
步進(jìn)表達(dá)式4
}
2.2.2 while循環(huán)執(zhí)行流程
執(zhí)行順序:1234>234>234...2不滿足為止。
1234步驟所代表的操作與2.1.2中1234代表的操作相同。
2.2.3 while循環(huán)實(shí)例
代碼如圖2所示:
2.3 do-while循環(huán)
2.3.1 do-while循環(huán)結(jié)構(gòu)
初始化表達(dá)式1
do{
循環(huán)體3
步進(jìn)表達(dá)式4
}while(布爾表達(dá)式2);
2.3.2 do-while循環(huán)執(zhí)行流程
執(zhí)行順序:134>234>234...2不滿足為止
1234步驟所代表的操作與2.1.2中1234代表的操作相同。
2.3.3 do-while循環(huán)實(shí)例
代碼如圖3所示:
3 三種循環(huán)語(yǔ)句的異同
通過(guò)以上的講解與觀察,可以發(fā)現(xiàn)三種循環(huán)的異同有如下幾點(diǎn):
1)for循環(huán)更適合用于循環(huán)次數(shù)確定的情況下;while或者do-while循環(huán)適合循環(huán)次數(shù)不確定的情況下使用;
2)for與while是先判斷后執(zhí)行,do-while是先執(zhí)行后判斷,且do-while循環(huán)至少執(zhí)行一次;
3)for循環(huán)中使用的變量是臨時(shí)變量,循環(huán)結(jié)束后,變量占用的內(nèi)存就被釋放了,不能再訪問(wèn)。while循環(huán)在循環(huán)結(jié)束后,變量仍然保留,可以繼續(xù)訪問(wèn)。相比while循環(huán),for循環(huán)提高內(nèi)存使用效率。
4)三種循環(huán)都可以用來(lái)處理同一問(wèn)題,一般情況下可以互相替換,因此我們可以根據(jù)不同的應(yīng)用場(chǎng)景酌情考慮使用不同的循環(huán)結(jié)構(gòu)。
4 跳出循環(huán)
4.1 break語(yǔ)句
break用于終止switch和循環(huán)語(yǔ)句,對(duì)于if等其他語(yǔ)句不起作用;多層循環(huán)中一個(gè)break只會(huì)向外跳出一層循環(huán)。程序代碼及運(yùn)行如圖4所示:
4.2 continue語(yǔ)句
結(jié)束本次循環(huán),繼續(xù)下一次循環(huán),而不是結(jié)束本層循環(huán)。程序代碼及運(yùn)行如圖5所示:
5 嵌套循環(huán)與死循環(huán)
5.1 嵌套循環(huán)
嵌套循環(huán)是指循環(huán)結(jié)構(gòu)中再使用循環(huán)結(jié)構(gòu),常見的嵌套循環(huán)有for循環(huán)和if();else if();嵌套循環(huán)可以完成更加復(fù)雜的功能,提高代碼可讀性和效率。循環(huán)次數(shù)的計(jì)算如下:
總循環(huán)次數(shù)=外層循環(huán)次數(shù)*內(nèi)層循環(huán)次數(shù)[3]
5.1.1嵌套循環(huán)格式
for(初始化表達(dá)式1;循環(huán)條件2;步進(jìn)表達(dá)式7){
for(初始化表達(dá)式3;循環(huán)條件4;步進(jìn)表達(dá)式5) {
執(zhí)行語(yǔ)句6;
}
}
5.1.2嵌套循環(huán)執(zhí)行流程
123456>456>723456>456,外層循環(huán)一次,內(nèi)層循環(huán)多次
5.1.3打印乘法口訣表程序案例
#include
int main(){
for (int i = 1; i <= 9; i++){
for (int j = 1; j <= i; j++){
printf("%d*%d=%d ", i, j, i*j);
}
printf("\n");
}
system("pause");
return 0;
}
5.2死循環(huán)
死循環(huán)是指循環(huán)中的條件永遠(yuǎn)為true,永不結(jié)束的循環(huán)。例如:while(true){},for(;;){}。
5.2.1猜數(shù)字游戲程序案例
void guess(){
int flag= rand() % 100 + 1;
while (true){
printf(“請(qǐng)輸入要猜的數(shù)字:”);
int num = 0;
scanf("%d", &num);
if (num < flag){
printf(“低了\n”);
}else if (num>flag){
printf(“高了\n”);
}else {
printf(“恭喜您猜對(duì)了”);
break;
}}}
6 結(jié)語(yǔ)
循環(huán)結(jié)構(gòu)在程序設(shè)計(jì)中教學(xué)中非常重要,采用漸進(jìn)式的與案例相結(jié)合的教學(xué)方法能夠更好地培養(yǎng)學(xué)生的算法分析能力,有助于學(xué)生在實(shí)際編程過(guò)程中逐步解決問(wèn)題的能力。通過(guò)由淺入深,逐步分解更好激發(fā)學(xué)生的學(xué)習(xí)興趣和主動(dòng)性。以幫助學(xué)生達(dá)到更好的學(xué)習(xí)效果,牢固掌握關(guān)于循環(huán)結(jié)構(gòu)的相關(guān)知識(shí)點(diǎn)。為后期進(jìn)一步學(xué)習(xí)編程知識(shí)打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1] 李芙蓉.基于信息化的c語(yǔ)言中循環(huán)語(yǔ)句的教學(xué)設(shè)計(jì)探討[J].電腦知識(shí)與技術(shù),2019,15(22):130,136.
[2] 李娟,張燕.C語(yǔ)言循環(huán)結(jié)構(gòu)教學(xué)的設(shè)計(jì)與實(shí)踐[J].計(jì)算機(jī)教育,2018(3):89-91.
[3] 裴大容.C語(yǔ)言程序設(shè)計(jì)中多重循環(huán)的教學(xué)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2019,15(34):153-155.
【通聯(lián)編輯:聞翔軍】