将一个 for 循环放在另一个 for 循环内部,就称为 Java 中的嵌套 for 循环。在本文中,我们将向您展示一个嵌套 for 循环的实际示例。在处理多层数据时,使用这些嵌套 for 循环来提取分层数据,但请在使用时务必小心。
例如,当您处理一维数组时,可以使用 For 循环从数组开头迭代到数组末尾。但是,要处理二维数组或多维数组,您必须在 Java 中使用此嵌套 For 循环。在开始示例之前,让我们看一下嵌套 For 循环的语法。
Java 嵌套 for 循环语法
Java 编程语言中的嵌套 For 循环的语法如下:
for (initialization; test condition; increment/decrement operator) { //First
for (initialization; test condition; increment/decrement operator) { // Second
//Second For Loop Statements
Statement 1
Statement 2
………
Statement n
}
//First For Loop Statements
Statement 1
………
Statement n
}
如果您观察上面的嵌套循环语法,我们会将 for 循环放在另一个循环的内部。
我们已经在上一节中解释了 for 循环语法。让我详细解释一下这个 Java 嵌套 For 循环的语法。
步骤 1:首先,编译器将检查第一个 for 循环中的条件。
- 如果条件为 True,则将执行 For 循环内的语句。这意味着编译器将进入第二个 For 循环:转到步骤 2。
- 如果条件为 False,编译器将退出 For 循环。
步骤 2:编译器将检查第二个或嵌套 for 循环中的条件。
- 如果条件为 True,将执行第二个 For 循环内的语句。这意味着它将从语句 1 执行到 N。
- 如果条件为 False,编译器将退出第二个 For 循环。
第 3 步:一旦退出第二个 for 循环,编译器将检查 for 循环中的条件(重复步骤 1)。
Java 嵌套 For 循环示例
此嵌套 for 循环程序允许用户输入任何整数值。然后它将从用户指定的数字打印到 10 的乘法表。为此,我们将把一个 for 循环嵌套在另一个 for 循环中。在此编程语言中,这也称为嵌套 for 循环。
// example
package Loops;
import java.util.Scanner;
public class NestedForLoop {
private static Scanner sc;
public static void main(String[] args) {
int i, j;
sc = new Scanner(System.in);
System.out.println("Please Enter the any integer Value below 10: ");
i = sc.nextInt();
for (; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
System.out.format("%d * %d = %d\n",i ,j, i*j);
}
System.out.println();
}
}
}

在此示例中,以下语句要求您输入小于 10 的任何整数值。接下来,我们将用户输入的值赋给整数变量 (i)。
System.out.println("Please Enter the any integer Value below 10: ");
i = sc.nextInt();
下一行,我们使用了 Java 嵌套 For 循环,第一个 For 循环中的条件将确保用户指定的i值小于或等于10。
for (; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
System.out.format("%d * %d = %d\n",i ,j, i*j);
}
System.out.println();
}
从上面的屏幕截图可以看出,用户输入的i值:= 9。这意味着此嵌套 For 循环程序将打印 9 和 10 的乘法表。
第一个 For 循环第一次迭代
在第一个 for 循环中,i 初始化为值 9,然后它将检查 i 是否小于或等于 10。此条件为 True,因此它将进入第二个 for 循环。
第二个 For 循环第一次迭代
这是 Java 中的嵌套 For 循环。在第二个 for 循环中,j 初始化为值 1。接下来,它将检查 j 是否小于或等于 10。此条件为 True,因此 Javac 编译器将执行第二个 for 循环内的语句。
i * j ==> 9 * 1 = 9
接下来,j 的值将增加 1 (j++)。请参阅 Java 中的递增和递减运算符 文章以了解此 ++ 符号。
第二个 For 循环第二次迭代
在这里,j 增加 1。所以 J = 2。编译器将检查 j 是否小于或等于 10。此条件为 True,因此编译器将执行第二个 for 循环内的语句。
i * j ==> 9 * 2 = 18
接下来,j 的值将增加 1 (j++)。
此过程将重复进行,直到 j 达到 11。一旦第二个 for 循环中的条件失败,编译器将退出第二个 for 循环,并且 i 将增加 1 (i++)。接下来,
第一个 For 循环第二次迭代
在这里,i 增加 1,因此 i = 10。编译器将检查 i 是否小于或等于 10。此条件为 True,因此 Javac 编译器将进入第二个 for 循环。
第二个 For 循环第一次迭代
在第二个 for 循环中,j 初始化为值 1,然后它将检查 j 是否小于或等于 10。此条件为 True。因此,编译器将执行第二个 for 循环内的语句。
i * j ==> 10 * 1 = 10
接下来,j 的值将增加 1 (j++)。
第二个 For 循环第二次迭代 – Java 中的嵌套 for 循环Java
在这里,j 将增加 1,所以 J = 2。编译器将检查 j 是否小于或等于 10。此条件为 True,因此编译器将执行第二个 for 循环内的语句。
i * j ==> 10 * 2 = 20
接下来,j 的值将增加 1 (j++)。
此过程将重复进行,直到 j 达到 11。一旦第二个 for 循环中的条件失败,编译器将退出第二个 for 循环,并且 i 将增加 1 (i++)。接下来,
第一个 For 循环第三次迭代
在这里,i = 11,条件为 False。For 循环终止,无需检查第二个循环,即嵌套。