Die Schleifen, die aus einer weiteren Schleife darin bestehen, werden als verschachtelte Struktur aufgebaut, und die äußere Schleife überwacht die Anzahl der Ausführungen der inneren Schleife. Schleifen, die in einer solchen Struktur arbeiten, werden als verschachtelte Schleife bezeichnet. Es wird auch als Schleife innerhalb der Schleife bezeichnet.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsIm Folgenden sind die unterschiedlichen Syntaxen aufgeführt:
1. Geschachtelte For-Schleife
for(initialize;cond1;increment/decrement) { for(initialize;cond2;increment/decrement) { //body of loop2 } //body of loop1 }
2. Verschachtelte While-Schleife
while(cond1) { while(cond2) { // body of loop2 } //body of loop1 }
3. Verschachtelte Do-while-Schleife
do{ do{ //body of loop 2 }while(cond2) //body of loop 1 }while(cond1
4. Verschachtelte heterogene Schleife
Bei der Verschachtelung der Schleife gibt es keine Einschränkungen, da nur ähnliche Schleifentypen verschachtelt werden können. Wir können jede Schleife in jede andere Schleife verschachteln, z. B. while in der for-Schleife oder while-Schleife in der do-while-Schleife, und alle anderen möglichen Kombinationen sind alle anwendbar.
for(initialize;cond1;increment/decrement) { while(cond2){ //body of loop2 } // body of loop1 }
Erklärung:
Im obigen Flussdiagramm wird zunächst, wenn wir den Hauptteil des Programms betreten, eine Anweisung wie Initialisierungs- oder Druckanweisungen get ausgeführt. Sobald eine Schleife gefunden wird, prüft das Programm die Bedingung für die äußere Schleife. Wenn es „true“ zurückgibt, gelangt es in die Schleife; Andernfalls wird die Schleife beendet und die restlichen Anweisungen des Programms nach der Schleife werden ausgeführt.
Sobald es in die äußere Schleife eintritt und auf die innere Schleife stößt, werden Variablen initialisiert, falls vorhanden. Anschließend wird die Bedingung für die innere Schleife überprüft, wenn sie „true“ zurückgibt. Das Programm tritt in die innere Schleife ein. Andernfalls kehren Sie zum Ende von Schleife1 zurück und führen Sie eine Erhöhung/Verringerung durch, um Schleife1 erneut auszuführen.
Wenn cond2 „true“ zurückgibt, werden Loop2-Anweisungen ausgeführt und die Zählervariable wird inkrementiert/dekrementiert. Dieser Vorgang wird mehrmals wiederholt, und dann verlässt das Programm Schleife2, dann Schleife1 und geht zu den Anweisungen nach der Schleife über.
Jede Schleife besteht aus den folgenden drei Dingen:
Bei verschachtelten Schleifen werden die oben genannten drei Schritte für jede darin enthaltene Schleife überprüft. Somit wird bei jedem Fluss der äußeren Schleife die innere Schleife vollständig ausgeführt. Das heißt, wenn wir m Flüsse für die äußere Schleife und n Flüsse für die äußere Schleife haben, wird diese Schleife zusammen m*n-mal ausgeführt.
Hinweis: Es gibt keine Beschränkungen hinsichtlich der Anzahl der Schleifen, die verschachtelt werden können, sowie der Art der Schleifen, die verschachtelt werden können. Man kann jede Art von Schleife verwenden, man muss jedoch vorsichtig sein, da sie sich auf die Schleife auswirkt zeitliche Komplexität des Programms und wirkt sich somit auf die Performance aus.Zum Beispiel:
for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ System.out.println(“LOOP DEMO”); } }
Im Fall der oben angegebenen verschachtelten Schleife:
Äußere Schleife
Counter variable = i Condition – i<5 Increment/decrement – i++
Innere Schleife
Counter variable = j Condition – j<5 Increment/decrement – j++
Im Folgenden finden Sie Beispiele für Nested Loops in Java:
Lassen Sie uns ein Programm schreiben, um das folgende Muster zu drucken:
*
**
***
****
*****
Code: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"); } } }
Im obigen Programm werden 2 innere Schleifen verwendet, da das zu druckende Muster ähnlich einem 2D-Array mit „*“ als Element mit 5 Zeilen und 5 Spalten verwendet werden kann.
Außerdem kann die if(i<=j)-Bedingung mithilfe der Positionen von * im 2D-Array ermittelt werden, wobei der Zähler für Zeilen I ist und wir für Spalten j verwenden.
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. Das obige ist der detaillierte Inhalt vonVerschachtelte Schleife in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!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