Day03-预习
2026-07-13 20:55:47
发布于:广东
🔄 C++ 循环结构 · 课前预习笔记
明天要学的东西叫 “循环结构” ——说白了就是让程序重复做某件事,就像你每天重复吃饭、睡觉、写作业一样。
一、先搞懂一个概念:程序怎么“重复做事”?
我们平时会这样说话:
“只要作业没写完,就一直写。”
这就是循环——条件成立时就一直重复做,直到条件不成立才停下来。
C++ 里有三种循环:
| 循环类型 | 特点 | 啥时候用 |
|---|---|---|
while |
先判断,再执行 | 不知道要循环多少次 |
for |
先判断,再执行 | 知道要循环多少次 |
do-while |
先执行,再判断 | 至少要做一次 |
二、复合运算符 —— 写代码的“快捷方式”
在学循环之前,先学几个偷懒写法,循环里经常用到。
1. 什么是复合运算符?
就是一种简写,把运算和赋值合在一起。
2. 常用复合运算符
| 运算符 | 含义 | 普通写法 | 简写 |
|---|---|---|---|
+= |
加等于 | a = a + 5 |
a += 5 |
-= |
减等于 | a = a - 3 |
a -= 3 |
*= |
乘等于 | a = a * 2 |
a *= 2 |
/= |
除等于 | a = a / 4 |
a /= 4 |
%= |
取余等于 | a = a % 3 |
a %= 3 |
3. 自增/自减(循环里超常用!)
| 运算符 | 含义 | 等价写法 |
|---|---|---|
i++ |
加1(后置) | i = i + 1 |
++i |
加1(前置) | i = i + 1 |
i-- |
减1(后置) | i = i - 1 |
--i |
减1(前置) | i = i - 1 |
int i = 0;
i++; // i 变成 1
i += 3; // i 变成 4(等价于 i = i + 3)
i *= 2; // i 变成 8(等价于 i = i * 2)
💡 记住:
++和--在循环里特别常用,用来数数(计数)。
三、while 循环 —— “只要……就一直……”
语法
while (条件) {
// 条件成立时重复执行的代码
}
执行流程
开始 → 判断条件 → 成立→执行循环体→再判断条件...
→ 不成立→跳出循环 → 结束
生活例子
只要 肚子饿,就一直 吃饭。
while (肚子饿) {
吃饭();
}
代码例子:从 1 数到 5
int i = 1; // ① 初始化:从1开始
while (i <= 5) { // ② 条件:i 小于等于 5 就继续
cout << i << " "; // ③ 循环体:输出 i
i++; // ④ 更新:i 加 1
}
// 输出:1 2 3 4 5
⚠️ 小心死循环!
int i = 1;
while (i <= 5) {
cout << "停不下来!"; // 忘记写 i++,i 永远是 1
}
// 程序会一直输出,永远不结束 💀
四、for 循环 —— “数数专用循环”
for 循环是 最常用 的循环,特别适合知道循环多少次的情况。
语法
for (初始化; 条件; 更新) {
// 循环体
}
执行流程
开始 → 执行初始化(只做一次)
→ 判断条件 → 成立→执行循环体→执行更新→再判断条件...
→ 不成立→跳出循环 → 结束
生活例子
从第 1 天到第 5 天,每天写一页作业。
for (int 天 = 1; 天 <= 5; 天++) {
写一页作业();
}
代码例子:从 1 数到 5(和 while 对比)
| while 写法 | for 写法 |
|---|---|
int i = 1; |
for (int i = 1; |
while (i <= 5) { |
i <= 5; |
cout << i; |
i++) { |
i++; |
cout << i; |
} |
} |
💡 关键区别:
for把“从哪开始”、“到哪结束”、“每次怎么变”都写在一行里,更清晰!
常见套路
// 1. 从 1 到 10
for (int i = 1; i <= 10; i++) { ... }
// 2. 从 10 到 1(倒着数)
for (int i = 10; i >= 1; i--) { ... }
// 3. 每次加 2(数奇数)
for (int i = 1; i <= 10; i += 2) { ... } // 1,3,5,7,9
// 4. 从 0 到 9(数组常用)
for (int i = 0; i < 10; i++) { ... }
五、do-while 循环 —— “先做再说”
do-while 和 while 的区别:先执行一次,再判断条件。
语法
do {
// 至少执行一次的代码
} while (条件); // ⚠️ 注意这里有分号!
执行流程
开始 → 执行循环体(无条件先做一次)
→ 判断条件 → 成立→再执行循环体→再判断...
→ 不成立→跳出循环 → 结束
生活例子
先 吃一口饭,再问“饱了吗?”——没饱就继续吃。
do {
吃一口饭();
} while (没吃饱);
while vs do-while 对比
// while:条件不成立 → 一次都不执行
int a = 10;
while (a < 5) {
cout << "不会输出"; // 条件不成立,跳过
}
// do-while:条件不成立 → 至少执行一次
int a = 10;
do {
cout << "至少输出一次"; // 先执行一次,再判断
} while (a < 5);
// 输出:至少输出一次(然后发现 a<5 是假,结束)
六、break —— “立刻停止!跳出循环”
功能:立即终止当前循环,不管条件成不成立。
生活例子
抄写单词,抄到第 50 个的时候手酸了,立刻停止。
for (int i = 1; i <= 100; i++) {
if (i == 50) {
break; // 抄到第50个,立刻停!
}
cout << "抄写第" << i << "个单词" << endl;
}
典型用途:提前结束循环
// 在循环里找到目标就立刻停
int target = 7;
for (int i = 1; i <= 10; i++) {
if (i == target) {
cout << "找到了!是" << i;
break; // 找到了就不用继续找了
}
}
七、continue —— “跳过这一次,继续下一次”
功能:跳过当前这一次循环体,直接进入下一次判断。
生活例子
吃一碗面,里面有香菜,把香菜挑出来(跳过),继续吃剩下的。
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 跳过 i=3 这一次
}
cout << i << " ";
}
// 输出:1 2 4 5(3被跳过了)
break vs continue 对比
| break | continue | |
|---|---|---|
| 效果 | 整个循环结束 | 只跳过这一次,循环继续 |
| 生活类比 | 直接不干了 | 跳过这个,继续干下一个 |
| 例子 | 抄到一半不抄了 | 抄到某个字不好看,跳过继续抄 |
// break:遇到 3 就全停
for (int i = 1; i <= 5; i++) {
if (i == 3) break;
cout << i; // 输出:12
}
// continue:遇到 3 只跳过这一次
for (int i = 1; i <= 5; i++) {
if (i == 3) continue;
cout << i; // 输出:1245
}
八、三种循环怎么选?(一张图搞定)
| 场景 | 推荐循环 | 原因 |
|---|---|---|
| 明确知道循环多少次 | for |
初始化、条件、更新写在一起,最清晰 |
| 不知道多少次,只知道什么时候停 | while |
灵活,条件可以是任何情况 |
| 至少要做一次 | do-while |
先做再判断,保证至少执行一次 |
例子:猜数字游戏
// 用 while:不知道猜几次
int secret = 7, guess;
cout << "猜一个1-10的数字:";
cin >> guess;
while (guess != secret) {
cout << "猜错了,再试一次:";
cin >> guess;
}
cout << "恭喜猜对了!";
// 用 do-while:至少猜一次
int secret = 7, guess;
do {
cout << "猜一个1-10的数字:";
cin >> guess;
if (guess != secret) cout << "猜错了!";
} while (guess != secret);
cout << "恭喜猜对了!";
📝 快速记忆卡
| 关键词 | 一句话总结 |
|---|---|
+= -= |
偷懒写法,a += 5 就是 a = a + 5 |
++ -- |
加1减1,循环数数专用 |
while |
先判断,成立才做 |
for |
先判断,成立才做,最常用! |
do-while |
先做一次,再判断 |
break |
立刻结束整个循环 |
continue |
跳过这次,继续下一次 |
🔥 预习小任务(试着想想)
明天上课前,想一下这 3 个问题:
- 让你用
for循环输出 1 到 100 的所有偶数,代码怎么写?(提示:可以每次+2,也可以判断i%2==0) for (int i = 0; i < 10; i++)和for (int i = 0; i <= 9; i++)有什么区别?循环次数一样吗?- 什么时候用
break,什么时候用continue?能不能举个例子说明?
明天上课带着这些问题来,效果翻倍!🚀
这里空空如也













有帮助,赞一个