I denne vejledning lærer vi om indlejrede sløjfer i Java ved hjælp af eksempler.
Hvis der findes en sløjfe inde i kroppen af en anden sløjfe, kaldes den en indlejret løkke. Her er et eksempel på den indlejrede for
løkke.
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Her bruger vi en for
sløjfe inde i en anden for
sløjfe.
Vi kan bruge den indlejrede løkke til at gentage hver ugedag i 3 uger.
I dette tilfælde kan vi oprette en løkke, der gentages tre gange (3 uger). Og inden i sløjfen kan vi oprette en anden sløjfe til at gentage 7 gange (7 dage).
Eksempel 1: Java indlejret til loop
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )
Produktion
Uge: 1 dag: 1 dag: 2 dag: 3…. Uge: 2 Dag: 1 Dag: 2 Dag: 3….….
I ovenstående eksempel gentages den ydre sløjfe 3 gange og udskrives 3 uger. Og den indre sløjfe gentager 7 gange og udskriver de 7 dage.
Vi kan også oprette indlejrede sløjfer med mens og gør … mens det er på en lignende måde.
Bemærk : Det er muligt at bruge en type sløjfe inde i kroppen af en anden sløjfe. For eksempel kan vi sætte en for
løkke inde i while
løkken.
Eksempel 2: Java til loop inde i while-loop
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )
Output :
Uge: 1 dag: 1 dag: 2 dag: 3…. Uge: 2 Dag: 1 Dag: 2 Dag: 3….….
Her kan du se, at output fra både eksempel 1 og eksempel 2 er det samme.
Eksempel 3: Java indlejrede sløjfer for at oprette et mønster
Vi kan bruge den indlejrede løkke i Java til at skabe mønstre som fuld pyramide, halv pyramide, omvendt pyramide og så videre.
Her er et program til at oprette et halvt pyramidemønster ved hjælp af indlejrede sløjfer.
class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )
Produktion
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
For at lære mere, besøg Java-programmet for at udskrive pyramide og mønstre.
bryde og fortsætte Inside Nested Loops
Når vi bruger en break
sætning inde i den indre sløjfe, afslutter den den indre sløjfe, men ikke den ydre sløjfe. For eksempel,
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )
Produktion
Uge: 1 dag: 1 dag: 2…. Uge: 2 Uge: 3 Dag: 1 Dag: 2….….
I ovenstående eksempel har vi brugt break-sætningen inde i den indre for
sløjfe. Her springer programmet over sløjfen, når jeg er 2 .
Derfor er dage for uge 2 ikke udskrevet. Den ydre sløjfe, der udskriver ugen, er imidlertid upåvirket.
På samme måde continue
springer den kun den nuværende iteration af den indre sløjfe , når vi bruger en sætning inde i den indre sløjfe. Den ydre sløjfe er upåvirket. For eksempel,
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )
Produktion
Uge: 1 Dage: 2 Dage: 4 Dage: 6 Uge: 2 Dage: 2 Dage: 4 Dage: 6 Uge: 3 Dage: 2 Dage: 4 Dage: 6
I ovenstående eksempel har vi brugt fortsættsætningen inde i det indre for løkke. Bemærk koden,
if(j % 2 != 0) ( continue; )
Her continue
udføres udsagnet, når værdien af j er ulige. Derfor udskriver programmet kun de dage, der er jævne.
Vi kan se, at continue
udsagnet kun har påvirket den indre sløjfe. Den ydre løkke fungerer uden problemer.