第 4 章 · 循环结构程序设计

4.1 while 循环

先判断后执行,可能一次都不执行:

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}

4.2 do...while 循环

先执行后判断,至少执行一次:

int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 5);

4.3 for 循环

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

增强 for(foreach)遍历数组或集合:

for (int x : arr) {
    System.out.println(x);
}

4.4 循环语句选择

  • 次数已知 → for;次数未知、依赖条件 → while;至少一次 → do...while
  • 遍历集合/数组优先用增强 for,简洁且避免下标越界。

4.5 break 与 continue

  • break:跳出当前循环。
  • continue:跳过本次迭代剩余语句,进入下一次迭代。
  • Java 支持带标签break/continue,可直接跳出多层嵌套循环:
outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i * j > 2) break outer;  // 跳出两层循环
    }
}

4.6 循环嵌套

循环体内再写循环,常用于处理二维结构或组合枚举。注意复杂度会随嵌套层数成倍增长。

4.7 与其他语言对比

  • C/C++:三种循环语法几乎一致,但 C 没有增强 for 和带标签 break;Java 的标签 break 比 C 的 goto 更受约束、更安全。
  • Python:只有 for ... in ...while,没有 C 风格三段式 forfor 本质是遍历可迭代对象。Python 同样没有标签 break。