Java 中的嵌套 for 循环

将一个 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();
		}
	}
}
Nested For Loop in Java 1

在此示例中,以下语句要求您输入小于 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 循环终止,无需检查第二个循环,即嵌套。