Java, som de fleste andre programmeringsspråk, støtter nestede løkker. Dette betyr bare en løkke i en løkke. I denne artikkelen skal vi finne ut om hvordan du arbeider med nestede løkker i Java.
Java nestede løkker
En løkke kalles nestet hvis den er plassert inne i en annen løkke. På den første passeringen kaller den ytre sløyfen den indre sløyfen, som løper til fullføring, hvoretter kontrollen overføres til kroppen til den ytre sløyfen. På den andre passeringen kaller den ytre løkken den indre igjen. Og så videre til den ytre løkken slutter. Det er fire typer løkker i Java:-
for løkke
-
mens loop
-
gjør ... mens loop
-
for hver løkke
Hvordan Java nestede løkker fungerer
Sannsynligvis den mest brukte loopen i Java er for , i stor grad fordi den er ganske allsidig og koden med den er ganske lett å lese. Her er den generelle syntaksen for nestet for loop:
// outer loop
for (initialization; condition; increment) {
//write here your code
//nested loop
for(initialization; condition; increment) {
//write here your code
}
..
}
Hvordan jobber han? Den ytre løkken starter. Deretter starter nestet for -løkken arbeidet og går gjennom indeksen sin til betingelsen er oppfylt, og sender igjen arbeidet til den ytre loopen, og dette skjer til betingelsen for den ytre loopen er oppfylt. Høres litt vanskelig ut, ikke sant? Vel, det vil være mye lettere å forstå med et spesifikt eksempel, så la oss gå videre til det.
Nestet for sløyfekode eksempel
Her er et klassisk eksempel. La oss skrive ut en halvpyramide med to for løkker. En av dem er nestet.
public class NestedLoopsDemo1 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j<=i; j++)
System.out.print("*");
System.out.println();
}
}
}
Utgangen er:
* ** *** **** ***** ****** ******** ******** ********* ***** *****
Nested while loop-kode eksempel
public class NestedLoopsDemo2 {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
int j = 0;
while (j <= i) {
System.out.print("*");
j++;
}
System.out.println();
i++;
}
}
}
Utgangen er akkurat den samme som i forrige eksempel:
* ** *** **** ***** ****** ******** ******** ********* ***** *****
Do ...while- løkken ligner på while- løkken. Hovedforskjellen er at hoveddelen av do...while -løkken kjøres én gang før uttrykkskontrollen.
Nested foreach loops-kodeeksempel
for-hver løkke kan nestes som vanlig for løkke. Her er eksemplet for nestet for hver sløyfe som itererer 2-dimensjonal array.
public class NestedLoops2 {
public static void main(String[] args)
{
int[][] mainArray = { {5, 4, 3, 2, 1}, {7, 8, 9, 10, 11} };
for (int[] myArray : mainArray)
{
for (int i : myArray)
{
System.out.print(i+" ");
}
System.out.println("");
}
}
}
Utgangen er:
5 4 3 2 1 7 8 9 10 11
Blandet for og mens loop eksempel
Noen ganger kan vi hekke ulike typer løkker inne i hverandre. For eksempel for inside while eller for inside for-each . Det er imidlertid ikke den beste programmeringspraksisen. Slike konstruksjoner svekker kodens lesbarhet betydelig. Så profesjonelle programmerere prøver å ikke blande det ene med det andre. Vel, det gjør de, men bare hvis det virkelig er nødvendig. Og en liten regel til: hvis du velger mellom mens og for , bruk for der det er mulig. Likevel, her skal vi ha et eksempel på bruk av en for- løkke inne i while . La oss bygge vår semi-pyramide igjen.
public class NestedLoopsDemo2 {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
i++;
}
}
}
Utgangen er uten overraskelser:
* ** *** **** ***** ****** ******** ******** ********* ***** *****
GO TO FULL VERSION