CodeGym /Java blog /Tilfældig /Java indlejrede sløjfer
John Squirrels
Niveau
San Francisco

Java indlejrede sløjfer

Udgivet i gruppen
Java, som de fleste andre programmeringssprog, understøtter indlejrede loops. Dette betyder blot en løkke i en løkke. I denne artikel skal vi finde ud af, hvordan man arbejder med indlejrede loops i Java.

Java indlejrede loops

En løkke kaldes indlejret, hvis den er placeret inde i en anden løkke. Ved første gennemløb kalder den ydre sløjfe den indre sløjfe, som løber til afslutning, hvorefter kontrollen overføres til kroppen af ​​den ydre sløjfe. På det andet gennemløb kalder den ydre sløjfe den indre igen. Og så videre, indtil den yderste løkke slutter. Der er fire typer loops i Java:
  • for sløjfe

  • mens loop

  • gør ... mens loop

  • for hver sløjfe

Alle understøtter indlejrede løkker. Nested-loop-konstruktioner bruges, når to betingelser skal være opfyldt, den ene afhængig af den anden. For eksempel, hvis du skal vise en todimensionel matrix, en semi-pyramide eller en multiplikationstabel.

Sådan fungerer Java-indlejrede loops

Sandsynligvis er den mest brugte loop i Java til , i høj grad fordi den er ret alsidig og koden med den er ret nem at læse. Her er den generelle syntaks for indlejret for loop:

// outer loop
for (initialization; condition; increment) {
  //write here your code 

  //nested loop
  for(initialization; condition; increment) {
    //write here your code
  }
..
}
Hvordan arbejder han? Den ydre sløjfe starter. Derefter starter den indlejrede for -løkke arbejdet og går gennem sit indeks, indtil betingelsen er opfyldt, og sender igen værket til den ydre sløjfe, og dette sker, indtil betingelsen for den ydre sløjfe er opfyldt. Det lyder lidt tricky, ikke? Nå, det vil være meget lettere at forstå med et specifikt eksempel, så lad os gå videre til det.

Indlejret for loop-kode eksempel

Her er et klassisk eksempel. Lad os udskrive en halv pyramide med to til sløjfer. En af dem er indlejret.

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();
       }
      
   }
}
Udgangen er:
* ** *** **** ***** ****** ******* ******** ********* ***** *****

Eksempel på Nested while loop-kode


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++;

       }
   }
}
Outputtet er det samme som i det foregående eksempel:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
Do ...while- løkken ligner while- løkken. Den væsentligste forskel er, at brødteksten af ​​do...while loop udføres én gang før udtrykskontrollen.

Eksempel på indlejret foreach loops-kode

for-hver løkke kan indlejres som normalt for løkke. Her er eksemplet for indlejret for-hver sløjfe, som itererer 2-dimensionelt 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("");
           }
       }
}
Udgangen er:
5 4 3 2 1 7 8 9 10 11

Blandet for og mens loop eksempel

Nogle gange kan vi sætte forskellige typer løkker inde i hinanden. For eksempel til inde i mens eller til inde for hver . Det er dog ikke den bedste programmeringspraksis. Sådanne konstruktioner forringer væsentligt kodens læsbarhed. Så professionelle programmører forsøger ikke at blande det ene med det andet. Nå, det gør de, men kun hvis det virkelig er nødvendigt. Og en lille regel mere: Hvis du vælger mellem mens og for , så brug for hvor det er muligt. Ikke desto mindre vil vi her have et eksempel på at bruge en for- løkke inde i while . Lad os bygge vores semi-pyramide igen.

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++;

       }
   }
}
Outputtet er uden overraskelser:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION