张微
摘要:循环语句结构是程序设计课程中的教学重点与难点,在循环语句实际教学过程当中 ,发现许多同学对该结构的理解较为困难,在编程测验时效果不大理想。该文将结合案例的形式关于循环结构提出一点建议帮助同学们加深对于该结构的学习理解。
关键词:循环结构;教学研究;程序设计
中图分类号: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.
【通联编辑:闻翔军】