Nested Loops in Java

2025年3月22日 | 阅读 5 分钟

Nested 的英文意思是在另一个里面。它意味着嵌套循环是一个循环语句在另一个循环语句里面。简单来说,循环里面的循环称为嵌套循环

外层循环的下一个周期开始之前,内层循环会完全运行一次。它对于处理重复性任务很有用,例如处理网格、打印模式或处理多层数据,如日程和表格。

在本节中,我们将讨论Java 中嵌套循环的类型。

Java 中,主要有以下三种类型的嵌套循环

  1. 嵌套 for 循环
  2. 嵌套 while 循环
  3. 嵌套 do-while 循环
  4. 混合嵌套循环(上述三种的组合)

让我们一个接一个地讨论。

嵌套 for 循环

嵌套 for 循环是一个放在另一个 for 循环里面的 for 循环。在内层循环的每次迭代完成之前,外层循环才会进入下一个迭代。

语法

嵌套 for 循环示例

文件名: Main.java

示例

编译并运行

输出

 
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 1, Inner: 3
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 2, Inner: 3
Outer: 3, Inner: 1
Outer: 3, Inner: 2
Outer: 3, Inner: 3
Outer: 4, Inner: 1
Outer: 4, Inner: 2
Outer: 4, Inner: 3   

嵌套 for 循环的用例

  • 处理二维数组(例如国际象棋棋盘)。
  • 打印模式(星号、数字等)。
  • 处理表格数据(例如电子表格)。
  • 处理组合(匹配不同的选择)。

嵌套 while 循环

嵌套 while 循环是一个放在另一个 while 循环里面的 while 循环。在外层循环的下一个步骤开始之前,内层循环会完全运行一次。

语法

嵌套 while 循环示例

文件名: Main.java

示例

编译并运行

输出

 
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 3, Inner: 1
Outer: 3, Inner: 2   

嵌套 while 循环的用例

  • 处理二维数据结构(例如网格)。
  • 重复执行未知次数的任务(当确切的迭代次数未知时)。
  • 动态生成模式。
  • 在循环中处理用户输入。

嵌套 do-while 循环

嵌套 do-while 循环是一个放在另一个 do-while 循环里面的 do-while 循环。在外层循环的下一个迭代开始之前,内层循环会完全运行一次。do-while 循环与 while 和 for 循环不同,它确保即使条件为 false,循环也会至少运行一次。

语法

嵌套 while 循环示例

文件名: Main.java

示例

编译并运行

输出

 
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 3, Inner: 1
Outer: 3, Inner: 2   

嵌套 do-while 循环的用例

  • 确保某个过程至少运行一次。
  • 动态生成模式,此时迭代次数不固定。
  • 处理需要至少执行一次的用户输入。
  • 处理多维数据(例如网格或表格)。

混合嵌套循环

循环不一定必须嵌套在它自己的类型内部。我们可以将任何类型的循环放在不同类型的循环内部。这称为混合嵌套循环。例如,可能存在 for 循环内的 while,do-while 循环内的 while,do-while 循环内的 for 等。

语法

示例 1:for 循环内的 while 循环

文件名: Main.java

示例

编译并运行

输出

 
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 3, Inner: 1
Outer: 3, Inner: 2   

示例 2:while 循环内的 do-while 循环

文件名: Main.java

示例

编译并运行

输出

 
Outer: 1, Inner: 1
Outer: 1, Inner: 2
Outer: 2, Inner: 1
Outer: 2, Inner: 2
Outer: 3, Inner: 1
Outer: 3, Inner: 2   

混合嵌套循环的用例

  • 处理不同的迭代要求(例如,一个循环至少运行一次,而另一个循环依赖于条件)。
  • 处理结构化数据,如表格或网格。
  • 高效地生成动态模式。

嵌套循环的优点

  1. 适用于多维数据。
  2. 适用于模式打印:需要打印三角形、金字塔或棋盘图案?嵌套循环可以精确控制行和列。
  3. 适用于排序和搜索:像 冒泡排序选择排序这样的算法使用嵌套循环来比较元素并有效地排列它们。
  4. 解决配对和组合问题。
  5. 模拟现实世界场景。
  6. 高效处理重复迭代。

下一个主题Java 的安全性