嵌套循环

嵌套循环

嵌套循环是指在一个循环内部再包含另一个循环,常见的形式有 for 里嵌套 for、while 里嵌套 while、for 里嵌套 while 等。

执行规则

外层循环每执行一次,内层循环就会完整地执行一轮。内层循环全部执行完毕后,才会回到外层循环进入下一次迭代。

外层循环执行 1 次 → 内层循环完整执行 N 次
外层循环执行 2 次 → 内层循环再完整执行 N 次
...

基本示例:双层 for 循环

for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        System.out.println(i * j);
    }
}

执行过程:

外层 i内层 j 的变化
i = 0j 从 0 到 9,执行 10 次
i = 1j 从 0 到 9,执行 10 次
……
i = 9j 从 0 到 9,执行 10 次

总共执行 10 × 10 = 100 次。

练习一:输出九九乘法口诀(完整矩形)

for (int i = 1; i < 10; i++) {
    for (int j = 1; j < 10; j++) {
        System.out.print(i + "x" + j + " = " + (i * j) + "  ");
    }
    System.out.println("");
}Code language: PHP (php)

练习二:阶梯型九九乘法口诀

只输出 j ≤ i 的部分,形成下三角格式:

for (int i = 1; i < 10; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(i + "x" + j + " = " + (i * j) + "  ");
    }
    System.out.println("");
}Code language: PHP (php)

输出效果:

1x1 = 1
2x1 = 2  2x2 = 4
3x1 = 6  3x2 = 6  3x3 = 9
...
9x1 = 9  9x2 = 18 ... 9x9 = 81

多层嵌套示例

while (true) {
    while (true) {
        while (true) {
            // 可以无限嵌套,但不建议过深,影响可读性
        }
    }
}Code language: JavaScript (javascript)

嵌套循环中 break 的作用范围

break 只能跳出它所在的那一层循环,不会影响外层循环:

public static void main(String[] args) {
    for (int i = 1; i < 10; i++) {
        if (i == 6) {
            break; // 跳出外层循环,i 到 6 时整个循环结束
        }
        for (int j = 1; j <= i; j++) {
            if (j == 6) {
                break; // 只跳出内层 j 循环,外层 i 继续
            }
            System.out.print(i + "x" + j + " = " + (i * j) + "  ");
        }
        System.out.println("");
    }
}Code language: JavaScript (javascript)
场景break 效果
内层循环中 break只终止内层循环,外层继续
外层循环中 break终止外层循环,整个嵌套结构结束

注意:如果需要从内层直接跳出外层循环,可以使用带标签的 break(后续学习)。嵌套循环不宜过深,一般不超过三层,否则可读性差且容易出错。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注