首頁 > Java > java教程 > Java 中的巢狀循環

Java 中的巢狀循環

WBOY
發布: 2024-08-30 15:25:34
原創
509 人瀏覽過

內部由另一個循環組成的循環作為嵌套結構構建,外部循環監視內部循環的執行次數,這種結構中的循環稱為嵌套循環。它也稱為循環中的循環。

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

Java 中嵌套循環的語法

以下是不同的語法:

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
}
登入後複製

流程圖

Java 中的巢狀循環

說明:

在上面的流程圖中,首先,當我們進入程式主體時,會執行初始化或列印語句 get 等語句。一旦發現循環,程式就會檢查外部循環的條件;如果傳回true,則進入循環;否則,循環結束,循環後程式的其餘語句執行。

一旦進入外循環並遇到內循環,如果有變數則初始化,然後檢查內循環條件,如果返回true 則程式進入內循環;否則,回到Loop1的末尾並執行增量/減量以再次執行Loop1。

如果 cond2 傳回 true,則執行 Loop2 語句,計數器變數會遞增/遞減。此過程重複多次,然後程式從 Loop2 退出,然後從 Loop1 退出並移至循環後的語句。

巢狀循環在 Java 中如何運作?

每個循環內部都包含以下 3 個內容:

  1. 初始化:這一步驟是指初始化計數器的值。
  2. 條件: 此條件是指繼續執行循環所需的比較。
  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 中巢狀循環的範例

下面給出了 Java 中巢狀循環的範例:

範例#1

讓我們寫一個程式來列印以下圖案:

*

**

***

****

*****

代碼:
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");
}
}
}
登入後複製
輸出: Java 中的巢狀循環 說明:

在上面的程式中,使用了 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

Example #2

Let’s see the example to print a 2D matrix.

Code:

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);
}
}
登入後複製

Output:

Java 中的巢狀循環

Explanation:
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

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中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板