內部由另一個循環組成的循環作為嵌套結構構建,外部循環監視內部循環的執行次數,這種結構中的循環稱為嵌套循環。它也稱為循環中的循環。
廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗以下是不同的語法:
1。巢狀 For 迴圈
for(initialize;cond1;increment/decrement) { for(initialize;cond2;increment/decrement) { //body of loop2 } //body of loop1 }
2。巢狀 While 迴圈
while(cond1) { while(cond2) { // body of loop2 } //body of loop1 }
3。嵌套 Do-while 循環
do{ do{ //body of loop 2 }while(cond2) //body of loop 1 }while(cond1
4。嵌套異質循環
循環的巢狀沒有限制,只能嵌套出類似類型的循環。我們可以將任何迴圈嵌套在任何其他迴圈中,例如 while 巢狀在 for 迴圈中或 while 迴圈嵌套在 do-while 迴圈中,所有其他可能的組合都適用。
for(initialize;cond1;increment/decrement) { while(cond2){ //body of loop2 } // body of loop1 }
說明:
在上面的流程圖中,首先,當我們進入程式主體時,會執行初始化或列印語句 get 等語句。一旦發現循環,程式就會檢查外部循環的條件;如果傳回true,則進入循環;否則,循環結束,循環後程式的其餘語句執行。
一旦進入外循環並遇到內循環,如果有變數則初始化,然後檢查內循環條件,如果返回true 則程式進入內循環;否則,回到Loop1的末尾並執行增量/減量以再次執行Loop1。
如果 cond2 傳回 true,則執行 Loop2 語句,計數器變數會遞增/遞減。此過程重複多次,然後程式從 Loop2 退出,然後從 Loop1 退出並移至循環後的語句。
每個循環內部都包含以下 3 個內容:
對於巢狀循環,將針對其中的每個循環檢查上述三個步驟。因此,對於外循環的每個流程,內循環都會完整執行,這意味著如果我們有 m 個流程用於外循環,n 個流程用於外部循環,那麼該循環將一起執行 m*n 次。
注意:可以嵌套的循環數量以及可以嵌套的循環類型沒有限制,可以使用任何類型的循環,但必須小心,因為它會影響程式的時間複雜度,從而影響效能。例如:
for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ System.out.println(“LOOP DEMO”); } }
在上面給出的巢狀循環的情況下:
外環
Counter variable = i Condition – i<5 Increment/decrement – i++
內循環
Counter variable = j Condition – j<5 Increment/decrement – j++
下面給出了 Java 中巢狀循環的範例:
讓我們寫一個程式來列印以下圖案:
*
**
***
****
*****
代碼:package Try; class Demo { //static method public static void main(String[] args) { for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i>=j) { System.<em>out</em>.print('*');} } System.<em>out</em>.println("\n"); } } }
在上面的程式中,使用了 2 個內循環,因為需要列印的圖案可以類似於以「*」為元素的 5 行 5 列的二維數組。
此外,if(i
I=1 | I=2 | I=3 | I=4 | I=5 | |
J=1 | * | ||||
J=2 | * | * | |||
J=3 | * | * | * | ||
J=4 | * | * | * | * | |
J=5 | * | * | * | * | * |
We can easily configure that we need to print * only when i Let’s see the example to print a 2D matrix. Code: Output: Explanation: Nested loop refers to the placement of loop inside the loop to execute the operations that need multiple loop traversals such as printing star patterns or search operations on any collection data structure array or linked list. Although it helps to make our task easier, it also increases the complexity of the program thus must be used in an efficient manner. 以上是Java 中的巢狀循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!Example #2
package Try;
class Demo
{
public static void printMatrix(int arr[][][]){
int i=0,j=0;
while(i<arr.length){
while(j<arr[i].length){
for (int k = 0; k <arr[j].length; k++)
System.out.println("arr[" + i + "][" + j + "]["+ k + "] = "+arr[i][j][k] );
j++;
}
i++;
j=0;
}
}
public static void main(String[] args)
{
int arr[][][] ={ { { 10, 2 }, { 30, 4 } }, { { 51, 6 }, { 79, 8 } } };
printMatrix(arr);
}
}
In the above program, we have used 3 loops to print the elements stored in a 3D Matrix using 3 counter variables. Thus, any number of loops can be tested as well as any type of loop can be used.Conclusion