跳转至

嵌套循环

循环嵌套

在一个循环里再写另一个循环:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 5; j++) {
        printf("*");
    }
    printf("\n");  // 每打完一行换行
}

输出:

*****
*****
*****

打印九九乘法表

#include <stdio.h>
int main()
{
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d×%d=%d\t", j, i, i * j);
        }
        printf("\n");
    }
    return 0;
}

输出:

1×1=1   
1×2=2   2×2=4   
1×3=3   2×3=6   3×3=9   
1×4=4   2×4=8   3×4=12  4×4=16  
...

嵌套循环的执行过程

外层 i=0: 内层 j=0→1→2→3→4 打印 5 个 * 然后换行
外层 i=1: 内层 j=0→1→2→3→4 打印 5 个 * 然后换行
外层 i=2: 内层 j=0→1→2→3→4 打印 5 个 * 然后换行

循环的小套路

💡 求和初始化为 0,求积初始化为 1

int sum = 0;   // 求和
int fact = 1;  // 求积

break 和 continue

  • break:跳出当前层循环
  • continue:跳过本次循环的剩余部分,进入下一次
for (i = 0; i < 10; i++) {
    if (i == 3) continue;  // 跳过 i=3,继续 i=4
    if (i == 7) break;      // 到 i=7 时直接退出整个循环
    printf("%d ", i);       // 输出: 0 1 2 4 5 6
}

⚠️ break 只跳出它所在的那一层循环。嵌套循环里想跳两层?用 goto 或设标志变量。