I denne opplæringen vil vi lære om nestede sløyfer i Java ved hjelp av eksempler.
Hvis det finnes en sløyfe i kroppen til en annen sløyfe, kalles den en nestet sløyfe. Her er et eksempel på den nestede for
sløyfen.
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Her bruker vi en for
sløyfe i en annen for
sløyfe.
Vi kan bruke den nestede sløyfen til å gjenta hver dag i en uke i 3 uker.
I dette tilfellet kan vi lage en løkke for å gjenta tre ganger (3 uker). Og inne i sløyfen kan vi opprette en ny sløyfe som gjentas 7 ganger (7 dager).
Eksempel 1: Java nestet for 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); ) ) ) )
Produksjon
Uke: 1 dag: 1 dag: 2 dag: 3…. Uke: 2 Dag: 1 Dag: 2 Dag: 3….….
I eksemplet ovenfor gjentar den ytre sløyfen tre ganger og skriver ut 3 uker. Og den indre sløyfen itererer 7 ganger og skriver ut de 7 dagene.
Vi kan også lage nestede løkker med mens og gjør… mens på en lignende måte.
Merk : Det er mulig å bruke en type sløyfe inne i kroppen til en annen sløyfe. For eksempel kan vi sette en for
løkke inne i while
løkken.
Eksempel 2: Java for loop inne 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; ) ) )
Utgang :
Uke: 1 dag: 1 dag: 2 dag: 3…. Uke: 2 Dag: 1 Dag: 2 Dag: 3….….
Her kan du se at utgangen fra både eksempel 1 og eksempel 2 er den samme.
Eksempel 3: Java nestede løkker for å lage et mønster
Vi kan bruke den nestede sløyfen i Java til å lage mønstre som full pyramide, halv pyramide, invertert pyramide og så videre.
Her er et program for å lage et halvpyramidemønster ved hjelp av nestede løkker.
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(""); ) ) )
Produksjon
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
For å lære mer, besøk Java-programmet for å skrive ut pyramide og mønstre.
bryt og fortsett Inside Nested Loops
Når vi bruker en break
uttalelse inne i den indre sløyfen, avslutter den den indre sløyfen, men ikke den ytre sløyfen. 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); ) ) ) )
Produksjon
Uke: 1 dag: 1 dag: 2…. Uke: 2 Uke: 3 Dag: 1 Dag: 2….….
I eksemplet ovenfor har vi brukt brudduttalelsen inne i den indre for
sløyfen. Her hopper programmet over løkken når jeg er 2 .
Derfor blir ikke dager for uke 2 skrevet ut. Den ytre sløyfen som skriver ut uke er imidlertid upåvirket.
Tilsvarende, når vi bruker en continue
uttalelse i den indre sløyfen, hopper den bare over gjeldende iterasjon av den indre sløyfen. Den ytre sløyfen 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); ) ) ) )
Produksjon
Uke: 1 Dager: 2 Dager: 4 Dager: 6 Uke: 2 Dager: 2 Dager: 4 Dager: 6 Uke: 3 Dager: 2 Dager: 4 Dager: 6
I eksemplet ovenfor har vi brukt fortsettelsesuttalelsen inne i indre for loop. Legg merke til koden,
if(j % 2 != 0) ( continue; )
Her blir continue
utsagnet utført når verdien av j er merkelig. Derfor skriver programmet bare ut de dagene som er jevne.
Vi kan se at continue
uttalelsen bare har påvirket den indre sløyfen. Den ytre sløyfen fungerer uten problemer.