当前位置: 首页 > news >正文

2.2 C++之循环结构

学习目标

  • 理解循环的意义(避免重复写代码)。
  • 掌握 forwhiledo-while 循环的用法。
  • 能编写简单循环程序(如累加、猜数字、输出图形等)。


1 循环的基本概念

什么是循环?
  • 比喻
    • 循环就像“重复做家务”——擦桌子5次、跳绳100下。
    • 程序中的循环:让计算机自动重复执行某段代码。
循环的三大要素
  1. 初始化:设定循环的起点(例如 int i = 1)。
  2. 循环条件:决定是否继续执行(例如 i <= 10)。
  3. 更新操作:改变循环变量的值(例如 i++)。

2 for 循环

基本语法
for (初始化; 循环条件; 更新操作) {// 重复执行的代码
}
示例1:输出1到10的数字
for (int i = 1; i <= 10; i++) {cout << i << " ";
}

运行结果

1 2 3 4 5 6 7 8 9 10
示例2:计算1到100的累加和
int sum = 0;
for (int i = 1; i <= 100; i++) {sum += i;  // 等价于 sum = sum + i
}
cout << "1到100的和是:" << sum;

运行结果

5050
嵌套循环:输出乘法表
for (int i = 1; i <= 9; i++) {      // 外层循环控制行for (int j = 1; j <= i; j++) {  // 内层循环控制列cout << j << "x" << i << "=" << i*j << "\t";}cout << endl;  // 换行
}

运行结果

1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
...(省略后续行)

3 while 循环

基本语法
初始化;
while (循环条件) {// 重复执行的代码更新操作;
}
示例1:猜数字游戏
srand(time(0));  
int num = rand() % 100 + 1;  // 生成1-100的随机数
int guess, count = 0;while (true) {  // 无限循环,直到猜对cout << "请输入你猜的数字:";cin >> guess;count++;if (guess > num) {cout << "太大了!" << endl;} else if (guess < num) {cout << "太小了!" << endl;} else {cout << "恭喜!你用了" << count << "次猜对了!";break;  // 跳出循环}
}
示例2:计算水仙花数
int n = 100;
while (n <= 999) {  // 遍历所有三位数int a = n / 100;       // 百位int b = (n / 10) % 10; // 十位int c = n % 10;        // 个位if (a*a*a + b*b*b + c*c*c == n) {cout << n << " ";}n++;
}

运行结果

153 370 371 407

4 do-while 循环

基本语法
初始化;
do {// 重复执行的代码更新操作;
} while (循环条件);
特点
  • 至少执行一次循环体(先执行,再判断条件)。
示例:输入密码验证
string password = "123456";
string input;
do {cout << "请输入密码:";cin >> input;
} while (input != password);  // 密码错误时重复输入cout << "密码正确!欢迎登录!";

5 break 和 continue

作用
  • break:立即跳出当前循环。
  • continue:跳过本次循环剩余代码,进入下一次循环。
示例:找质数(优化版)
for (int i = 2; i <= 100; i++) {bool isPrime = true;for (int j = 2; j <= i/2; j++) {  // 优化:只需检查到i/2if (i % j == 0) {isPrime = false;break;  // 发现因子后立即跳出内层循环}}if (isPrime) cout << i << " ";
}

6 常见错误 & 调试技巧

易错点
  1. 无限循环:忘记更新循环变量。
int i = 1;
while (i <= 10) {  // 缺少i++,导致无限循环cout << i << " ";
}
  1. 循环条件错误
for (int i=0; i<5; i--);  // i--会让i越来越小,永远小于5
  1. **混淆 break 和 **continue
for (int i=1; i<=10; i++) {if (i == 5) continue;  // 跳过i=5的循环cout << i << " ";
}
调试技巧
  • 在循环内打印变量值:cout << "i=" << i << endl;
  • 使用调试工具逐步执行(如Visual Studio的逐行调试)。

7 练习与挑战

基础练习

  1. for 循环输出所有 偶数(1-100)。
  2. while 循环计算 10的阶乘(10! = 10×9×8×…×1)。

进阶挑战

  1. “数字炸弹”游戏:计算机随机生成一个1-100的数,玩家每次猜测后,程序缩小范围提示(例如:答案是50,玩家猜30,提示“30-100”)。
  2. “星号金字塔”:用嵌套循环输出如下图形:
   *  ***  *****  
*******  

总结

知识点关键内容
for 循环适合已知次数的循环(如遍历数组、固定次数操作)。
while 循环适合未知次数但需先判断条件的循环(如游戏循环)。
do-while至少执行一次循环体(如密码验证)。
break/continue控制循环流程,避免冗余计算。

下一部分数组与字符串 —— 用“盒子”存储多个数据!


通过 生活化比喻游戏化案例,少儿可以轻松理解循环的抽象概念。是否需要添加更多互动练习或调整难度?

相关文章:

  • arcgis js 4.x 的geometryEngine计算距离、面积、缓冲区等报错、失败
  • 整合Jdk17+Spring Boot3.2+Elasticsearch9.0+mybatis3.5.12的简单用法
  • OpenHarmony定制系统组合按键(二)
  • Linux线程入门
  • 麻省理工新突破:家庭场景下机器人实现精准控制,real-to-sim-to-real学习助力
  • Linux上给SD卡创建分区
  • Linux下挂载目录如何进行操作
  • 华为OD机试真题——最小矩阵宽度(宽度最小的子矩阵)(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【异常解决】一招解决Navicat连接线上数据库时,隔一段时间不操作出现的卡顿问题
  • 【JavaEE】Spring事务
  • 【JavaEE】-- 网络原理
  • 深度解析 torch.mean 的替代方案
  • Java消息队列应用:Kafka、RabbitMQ选择与优化
  • PyTorch 入门学习笔记
  • 记录一次session安装应用recyclerview更新数据的bug
  • Qt 的简单示例 -- 地址簿
  • 聊聊JVM怎么调优?(实战总结)
  • 单链表反序实现
  • 数据结构 - 树的遍历
  • 从零开始搞个简易分布式部署环境
  • 网站开发属于软件开发/软文推广渠道
  • 荆门做微信公众号的网站/未来网络营销的发展趋势
  • wordpress 云储存/网站首页排名seo搜索优化
  • 官方网站开发商/百度营销搜索推广
  • 网站制作公司承担/百度浏览器官网
  • 网站二级目录怎么做301/seo网课培训