11.循环结构 (while)
约 1726 字大约 6 分钟
2025-02-05
一、开场:探索未知次数的循环奥秘
标题:揭开 while 循环的神秘面纱 - 掌控不确定循环
副标题:用 while 循环,为程序赋予灵活的重复能力
引入方式:展示一段人们在玩抽奖游戏的视频,参与者不断抽奖,直到中奖为止,每次抽奖的次数不确定。提问学生如何用编程实现这种重复操作,从而引出 while 循环,它适用于在条件满足时重复执行代码,而执行次数事先不确定。
配图:选择一张人们玩抽奖游戏的图片,或者用流程图表示不确定次数循环的图片,让学生对不确定次数的循环有直观认识。
二、while 循环初相识
while 循环的概念
讲解 while 循环是一种循环控制结构,只要给定的条件为真,就会重复执行循环体中的代码。与 for 循环不同,它不依赖于预先设定的循环次数,而是根据条件判断是否继续循环。
举例说明,比如在猜数字游戏中,玩家不断猜测数字,直到猜对为止,这里使用 while 循环就能很好地控制猜测过程,因为事先不知道玩家需要猜多少次才能猜对。
while 循环的语法
while (条件表达式) {
// 循环体,重复执行的代码块
}
解释:“条件表达式” 是一个布尔表达式,当它的值为真(非零值)时,执行循环体中的代码;当条件表达式的值为假(零值)时,结束循环,程序继续执行 while 循环之后的代码。
代码示例 1:简单的计数循环
#include <iostream>
int main() {
int count = 1;
while (count <= 5) {
std::cout << "当前计数: " << count << std::endl;
count++;
}
return 0;
}
逐行分析代码:
首先定义一个整型变量count
并初始化为 1。
while (count <= 5)
是条件判断,只要count
小于等于 5,就会执行循环体。
循环体中std::cout << "当前计数: " << count << std::endl;
输出当前的计数值,count++;
则使count
自增 1。
强调 while 循环的执行流程:先判断条件表达式,若为真则执行循环体,执行完循环体后再次判断条件表达式,如此反复,直到条件表达式为假。
三、while 循环的实际应用
处理用户输入直到满足特定条件
讲解在实际编程中,经常需要读取用户输入,直到用户输入符合特定条件为止。例如,读取用户输入的整数,直到输入 0 时停止。
代码示例:
#include <iostream>
int main() {
int num;
std::cout << "请输入整数(输入0结束): ";
while (true) {
std::cin >> num;
if (num == 0) {
break;
}
std::cout << "你输入的是: " << num << std::endl;
std::cout << "请继续输入整数(输入0结束): ";
}
return 0;
}
分析代码:这里使用了一个无限循环while (true)
,在循环体中读取用户输入的整数。如果输入的是 0,通过break
语句跳出循环;否则,输出用户输入的数字并提示继续输入。
实现简单的猜数字游戏
以猜数字游戏为例,进一步展示 while 循环在处理不确定次数循环时的应用。计算机随机生成一个 1 到 100 之间的数字,玩家不断猜测,直到猜对为止。
代码示例:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
srand(static_cast<unsigned int>(time(nullptr)));
int secretNumber = rand() % 100 + 1;
int guess;
std::cout << "欢迎来到猜数字游戏!请猜一个1到100之间的整数。" << std::endl;
while (true) {
std::cin >> guess;
if (guess > secretNumber) {
std::cout << "大了,请再猜。" << std::endl;
} else if (guess < secretNumber) {
std::cout << "小了,请再猜。" << std::endl;
} else {
std::cout << "恭喜你,猜对了!" << std::endl;
break;
}
}
return 0;
}
分析代码:程序使用while (true)
创建一个无限循环,玩家在循环内不断输入猜测的数字。通过比较猜测数字与随机生成的秘密数字,给出 “大了”“小了” 的提示,直到猜对时使用break
语句结束循环。
四、实践与巩固
练习题目
让学生编写一个程序,使用 while 循环计算用户输入的一组正整数的平均值。用户输入 0 时停止输入,要求添加注释说明代码功能。
给出一个包含 while 循环的程序,其中存在条件判断错误、循环体逻辑错误等问题,让学生找出并改正,同时添加注释解释修改原因。
互动环节
开展小组合作,将学生分成小组共同完成练习题目。各小组完成后,进行小组间的代码互评,互相指出问题和优点,最后教师总结点评,对表现优秀的小组给予奖励,如编程书籍、学习卡等。
进行创意编程展示,教师给出一些生活中需要不确定次数循环的场景,如自动售货机找零计算、自动门感应控制等,让学生在规定时间内用 while 循环编写代码实现,并邀请小组代表上台展示代码思路和运行效果,激发学生的创新思维和编程热情。
五、回顾与总结
总结
回顾 while 循环的概念、语法,强调条件表达式在控制循环执行中的关键作用。
总结 while 循环在处理用户输入和实现游戏等实际应用中的技巧和注意事项。
对比 while 循环和 for 循环的适用场景,帮助学生理解何时选择 while 循环,何时选择 for 循环。
拓展
鼓励学生课后尝试编写更复杂的程序,如使用 while 循环实现一个简单的文本分析工具,统计文本中单词出现的次数;或者编写一个简单的动画效果程序,利用 while 循环不断更新画面。
推荐相关的编程学习资源,如在线教程网站(如慕课网、网易云课堂等)、编程论坛(如 C++ 论坛、开源中国论坛等),让学生在课后能继续深入学习 while 循环以及其他编程知识,拓宽编程视野,提升编程能力。
六、结束寄语
感谢语
感谢同学们在本节课的积极参与和认真学习,通过本节课的学习,大家对 while 循环有了深入的理解和掌握。希望大家在今后的编程学习中,能够熟练运用 while 循环解决各种需要不确定次数循环的问题,不断提升自己的编程水平和解决实际问题的能力。