張微



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