CodeGym /Java 博客 /随机的 /Java 嵌套循环
John Squirrels
第 41 级
San Francisco

Java 嵌套循环

已在 随机的 群组中发布
与大多数其他编程语言一样,Java 支持嵌套循环。这意味着只是循环中的循环。在本文中,我们将了解如何在 Java 中使用嵌套循环。

Java 嵌套循环

如果一个循环被放置在另一个循环内,则称为嵌套循环。在第一遍中,外循环调用内循环,内循环运行完成,之后控制权转移到外循环的主体。在第二遍中,外循环再次调用内循环。依此类推,直到外循环结束。Java 中有四种类型的循环:
  • for循环

  • while循环

  • 做...while循环

  • for-each循环

它们都支持嵌套循环。当必须满足两个条件且一个依赖于另一个时,使用嵌套循环结构。例如,如果您需要显示二维矩阵、半金字塔或乘法表。

Java 嵌套循环的工作原理

Java 中使用最多的循环可能是for,这在很大程度上是因为它非常通用并且使用它的代码非常容易阅读。下面是嵌套for循环的一般语法:

// outer loop
for (initialization; condition; increment) {
  //write here your code 

  //nested loop
  for(initialization; condition; increment) {
    //write here your code
  }
..
}
他是如何工作的?外循环开始。然后嵌套的for循环开始工作并遍历其索引直到满足条件,然后再次将工作传递给外循环,直到满足外循环的条件。听起来有点棘手,不是吗?嗯,结合具体的例子理解起来会容易很多,下面继续说吧。

嵌套for循环代码示例

这是一个经典的例子。让我们使用两个for循环打印出一个半金字塔。其中之一是嵌套的。

public class NestedLoopsDemo1 {

   public static void main(String[] args) {

       for (int i = 0; i < 10; i++) {
           for (int j = 0; j<=i;  j++)
               System.out.print("*");
           System.out.println();
       }
      
   }
}
输出是:
* ** *** **** ***** ****** ******* ******** ********* ***** *****

嵌套 while 循环代码示例


public class NestedLoopsDemo2 {

   public static void main(String[] args) {

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

       }
   }
}
输出与前面的示例相同:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
do ...while循环类似于while循环。主要区别在于, do...while循环的主体在表达式检查之前执行一次。

嵌套的 foreach 循环代码示例

for-each循环可以像通常的for循环一样嵌套。下面是迭代二维数组的 嵌套for-each循环的示例。

public class NestedLoops2 {

       public static void main(String[] args)
       {
           int[][] mainArray = { {5, 4, 3, 2, 1}, {7, 8, 9, 10, 11} };

           for (int[] myArray : mainArray)
           {
               for (int i : myArray)
               {
                   System.out.print(i+" ");
               }
               System.out.println("");
           }
       }
}
输出是:
5 4 3 2 1 7 8 9 10 11

混合 for 和 while 循环示例

有时我们可以将不同类型的循环相互嵌套。例如,for inside whilefor inside for-each。但是,这不是最佳的编程实践。这样的结构显着削弱了代码的可读性。所以专业的程序员尽量不要把它们混在一起。好吧,他们会这样做,但前提是确实需要。还有一个小规则:如果您在whilefor之间进行选择,请尽可能使用for 。尽管如此,这里我们将有一个在while中使用for循环的例子。让我们再次构建我们的半金字塔。

public class NestedLoopsDemo2 {

   public static void main(String[] args) {
       int i = 0;
       while (i < 10) {
           for (int j = 0; j <= i; j++) {
               System.out.print("*");
           }
           System.out.println();
           i++;

       }
   }
}
输出毫无意外:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION