CodeGym /Java Blog /Toto sisi /Java 嵌套循環
John Squirrels
等級 41
San Francisco

Java 嵌套循環

在 Toto sisi 群組發布
與大多數其他編程語言一樣,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