C 循环
C 循环
在 C 语言中,循环结构(Loop) 是控制程序流程的重要手段之一。它允许我们重复执行一段代码,直到满足特定条件为止。
掌握好循环结构,是编写高效、简洁、可维护代码的基础。
一、学习目标 🎯
- 掌握
for
、while
和do-while
三种基本循环结构的使用方法。 - 理解循环的执行流程和退出机制,避免死循环。
- 能够根据实际需求选择合适的循环结构,并结合
break
和continue
控制流程。
二、核心重点 🔑
- C 中的三种循环:
for
(固定次数)、while
(先判断后执行)、do-while
(先执行后判断)。 - 循环体内应有退出机制,否则可能造成“死循环”。
break
强制跳出当前循环;continue
跳过本次循环体剩余部分,进入下一轮循环。
三、详细讲解
✅ 1. for
循环 —— 固定次数的最常用结构
语法:
for (初始化; 条件判断; 更新表达式) {
// 循环体
}
示例:打印 1~10 的数字
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 10; i++) {
printf("%d ", i);
}
return 0;
}
// 输出:1 2 3 ... 10
⚠️ 注意事项:
- 初始化只执行一次;
- 每次循环前都会检查条件;
- 更新表达式通常用于改变循环变量。
✅ 2. while
循环 —— 不确定循环次数时使用
语法:
while (condition) {
// condition 为真时持续执行
}
示例:输入一个正整数 n,输出从 1 到 n 的和
#include <stdio.h>
int main(void) {
int n, sum = 0, i = 1;
printf("请输入一个正整数: ");
scanf("%d", &n);
while (i <= n) {
sum += i;
i++;
}
printf("1 到 %d 的和为:%d\n", n, sum);
return 0;
}
⚠️ 注意事项:
- 如果初始条件不满足,循环体不会执行;
- 必须确保循环条件最终能变为假,否则会死循环。
✅ 3. do-while
循环 —— 至少执行一次的循环结构
语法:
do {
// 循环体
} while (condition);
示例:至少让用户输入一次密码
#include <stdio.h>
int main(void) {
int password;
do {
printf("请输入密码(正确密码是 123456):");
scanf("%d", &password);
} while (password != 123456);
printf("密码正确!\n");
return 0;
}
⚠️ 注意事项:
do-while
循环至少执行一次;- 条件判断在循环体之后进行。
✅ 4. break
和 continue
—— 控制循环流程的关键字
break
:立即跳出当前循环
for (int i = 1; i <= 10; i++) {
if (i == 5) break;
printf("%d ", i); // 输出:1 2 3 4
}
continue
:跳过当前轮次,继续下一轮循环
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
printf("%d ", i); // 输出奇数:1 3 5 7 9
}
⚠️ 注意事项:
break
和continue
只影响当前所在的循环层;- 在嵌套循环中,若想跳出外层循环,需要使用标志位或 goto(谨慎使用)。
✅ 5. 嵌套循环 —— 多层循环结构
可以在一个循环体内再嵌套另一个循环。
示例:打印九九乘法表
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d*%d=%-4d", j, i, i * j); // %-4d 左对齐占4格
}
printf("\n");
}
return 0;
}
输出效果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...
四、常见陷阱与避坑指南 ⚠️
陷阱 | 描述 | 解决方案 |
---|---|---|
❗忘记更新循环变量 | 导致死循环 | 确保循环体内有使条件为假的操作 |
❗误用 = 代替 == |
条件判断错误 | 开启编译器警告 -Wall |
❗在 for 循环中使用浮点数控制变量 |
精度问题导致无法退出 | 使用整型控制变量 |
❗嵌套循环未加注释 | 阅读困难 | 加注释说明每层循环目的 |
五、拓展练习 🧩
🧩 练习题 1:求阶乘
编写一个程序,输入一个正整数 n
,计算其阶乘 n!
。
提示:使用 for
或 while
实现。
🧩 练习题 2:猜数字游戏
编写一个简单的猜数字游戏,程序随机生成一个 1~100 的整数,用户不断猜测,直到猜中为止。
要求:
- 提示用户“太大了”或“太小了”;
- 显示猜了多少次才猜中。
🧩 练习题 3:打印菱形
输入一个奇数 n
,打印一个边长为 n
的菱形(如 n=5):
*
***
*****
***
*
提示:使用 for
循环 + 打印空格和星号。
🧩 练习题 4:斐波那契数列
使用循环输出前 n
项斐波那契数列:
0 1 1 2 3 5 8 ...
用户输入 n
,程序输出前 n
个数。
六、实战建议总结
场景 | 推荐使用的循环结构 |
---|---|
固定次数循环 | for |
条件驱动循环 | while |
至少执行一次 | do-while |
多层逻辑处理 | 嵌套循环 + 注释说明 |
控制流程 | break / continue |
恭喜你完成了《C 循环》这一章的学习!
你已经掌握了如何用循环让程序自动完成重复性任务,这是构建任何复杂程序不可或缺的能力。
✅ 下一章推荐学习内容(任选其一):
- 《C 函数详解:参数传递、调用栈、递归》
- 《C 数组与字符串基础》
- 《C 数据类型与类型转换》
- 《C 指针入门:地址、指针变量、数组访问》
你想继续学哪个?我来为你定制下一章 👇