C 循环

C 循环

在 C 语言中,循环结构(Loop) 是控制程序流程的重要手段之一。它允许我们重复执行一段代码,直到满足特定条件为止。

掌握好循环结构,是编写高效、简洁、可维护代码的基础。


一、学习目标 🎯

  1. 掌握 forwhiledo-while 三种基本循环结构的使用方法。
  2. 理解循环的执行流程和退出机制,避免死循环。
  3. 能够根据实际需求选择合适的循环结构,并结合 breakcontinue 控制流程。

二、核心重点 🔑

  1. C 中的三种循环:for(固定次数)、while(先判断后执行)、do-while(先执行后判断)。
  2. 循环体内应有退出机制,否则可能造成“死循环”。
  3. 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. breakcontinue —— 控制循环流程的关键字

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
}

⚠️ 注意事项:

  • breakcontinue 只影响当前所在的循环层;
  • 在嵌套循环中,若想跳出外层循环,需要使用标志位或 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!

提示:使用 forwhile 实现。


🧩 练习题 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 指针入门:地址、指针变量、数组访问》

你想继续学哪个?我来为你定制下一章 👇

posted @ 2025-06-03 20:46  红尘过客2022  阅读(95)  评论(0)    收藏  举报