Beágyazott hurok Java-ban (példákkal)

Ebben az oktatóanyagban példák segítségével megismerhetjük a Java beágyazott hurkait.

Ha egy hurok létezik egy másik hurok testében, akkor beágyazott huroknak hívják. Itt van egy példa a beágyazott forhurokra.

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Itt egy forhurokot használunk egy másik forhurokban.

Használhatjuk a beágyazott hurkot a hét minden napjának 3 héten át történő iterálásához.

Ebben az esetben létrehozhatunk egy hurkot a háromszoros (3 hét) ismétléshez. És a hurok belsejében létrehozhatunk egy újabb ciklust, amely 7-szer (7 nap) ismétlődik.

1. példa: Java beágyazva a hurokba

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

Kimenet

Hét: 1 Nap: 1 Nap: 2 Nap: 3…. Hét: 2 Nap: 1 Nap: 2 Nap: 3….….

A fenti példában a külső hurok háromszor ismétlődik és 3 hetet nyomtat. És a belső hurok 7-szer ismétlődik, és kinyomtatja a 7 napot.

Létrehozhatunk beágyazott ciklusokat a while és do… műveletekkel is, hasonló módon.

Megjegyzés : Lehetséges egy típusú hurok használata egy másik hurok testében. Például tehetünk egy forhurkot a hurok belsejébe while.

2. példa: Java for loop a while ciklus belsejében

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

Kimenet :

Hét: 1 Nap: 1 Nap: 2 Nap: 3…. Hét: 2 Nap: 1 Nap: 2 Nap: 3….….

Itt láthatjuk, hogy a kimenő mind az 1. példa és a 2. példa ugyanaz.

3. példa: Java beágyazott hurkokat hoz létre egy minta létrehozásához

Használhatjuk a Java beágyazott hurokját olyan minták létrehozására, mint a teljes piramis, a fél piramis, a fordított piramis stb.

Itt van egy program egy fél piramisminta létrehozására beágyazott hurkok felhasználásával.

 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(""); ) ) )

Kimenet

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

További információkért keresse fel a Java programot piramis és minták kinyomtatásához.

törje meg és folytassa az Inside Nested Loops alkalmazást

Amikor breaka belső hurok belsejében használunk egy állítást, akkor a belső hurok befejeződik, a külső hurok azonban nem. Például,

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

Kimenet

Hét: 1 Nap: 1 Nap: 2…. Hét: 2 hét: 3 nap: 1 nap: 2….….

A fenti példában a break mondatot használtuk a belső forhurok belsejében . Itt a program kihagyja a ciklust, amikor i értéke 2 .

Ezért a 2. hét napjai nem kerülnek kinyomtatásra. A hétet kinyomtató külső hurok azonban nem változik.

Hasonlóképpen, amikor egy continueállítást használunk a belső hurokban, akkor csak a belső hurok aktuális iterációját hagyja ki. A külső hurok érintetlen. Például,

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

Kimenet

 Hét: 1 nap: 2 nap: 4 nap: 6 hét: 2 nap: 2 nap: 4 nap: 6 hét: 3 nap: 2 nap: 4 nap: 6

A fenti példában a belső for cikluson belüli folytatás utasítást használtuk. Figyelje meg a kódot,

 if(j % 2 != 0) ( continue; )

Itt az continueutasítás akkor kerül végrehajtásra, ha j értéke páratlan. Ezért a program csak azokat a napokat nyomtatja ki, amelyek egyenletesek.

Láthatjuk, hogy az continueállítás csak a belső hurkot érintette. A külső hurok probléma nélkül működik.

érdekes cikkek...