Ugnježđena petlja u Javi (s primjerima)

U ovom uputstvu uz primjere ćemo naučiti o ugniježđenim petljama u Javi.

Ako petlja postoji unutar tijela druge petlje, naziva se ugniježđena petlja. Evo primjera ugniježđene forpetlje.

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

Ovdje koristimo forpetlju unutar druge forpetlje.

Ugniježđenu petlju možemo koristiti za ponavljanje svakog dana u tjednu tijekom 3 tjedna.

U tom slučaju možemo stvoriti petlju za ponavljanje tri puta (3 tjedna). I, unutar petlje, možemo stvoriti još jednu petlju koja će se ponavljati 7 puta (7 dana).

Primjer 1: Java ugniježđena za petlju

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

Izlaz

Tjedan: 1 Dan: 1 Dan: 2 Dan: 3…. Tjedan: 2 Dan: 1 Dan: 2 Dan: 3….….

U gornjem primjeru vanjska petlja ponavlja se 3 puta i ispisuje 3 tjedna. I, unutarnja petlja ponavlja se 7 puta i ispisuje 7 dana.

Također možemo stvoriti ugniježđene petlje s while i učiniti … dok na sličan način.

Napomena : Moguće je koristiti jednu vrstu petlje unutar tijela druge petlje. Na primjer, forunutar whilepetlje možemo staviti petlju.

Primjer 2: Java for petlja unutar while petlje

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

Izlaz :

Tjedan: 1 Dan: 1 Dan: 2 Dan: 3…. Tjedan: 2 Dan: 1 Dan: 2 Dan: 3….….

Ovdje možete vidjeti da su rezultati i Primjera 1 i Primjera 2 isti.

Primjer 3: Java ugniježđene petlje za stvaranje uzorka

Ugniježđenu petlju u Javi možemo koristiti za stvaranje uzoraka poput pune piramide, polupiramide, obrnute piramide itd.

Ovdje je program za stvaranje uzoraka polupiramide pomoću ugniježđenih petlji.

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

Izlaz

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

Da biste saznali više, posjetite Java program za ispis piramida i uzoraka.

prekinite i nastavite unutar ugniježđenih petlji

Kada koristimo breakizjavu unutar unutarnje petlje, ona završava unutarnju petlju, ali ne i vanjsku. Na primjer,

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

Izlaz

Tjedan: 1 Dan: 1 Dan: 2…. Tjedan: 2 Tjedan: 3 Dan: 1 Dan: 2….….

U gornjem primjeru koristili smo izjavu break unutar unutarnje forpetlje. Ovdje program preskače petlju kada sam 2 .

Stoga se dani za tjedan 2 ne ispisuju. Međutim, to neće utjecati na vanjsku petlju koja ispisuje tjedan.

Slično tome, kada koristimo continueizraz unutar unutarnje petlje, on preskače trenutnu iteraciju samo unutarnje petlje. Vanjska petlja nije pogođena. Na primjer,

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

Izlaz

 Tjedan: 1 Dani: 2 Dana: 4 Dana: 6 Tjedan: 2 Dana: 2 Dana: 4 Dana: 6 Tjedan: 3 Dana: 2 Dana: 4 Dana: 6

U gornjem primjeru koristili smo naredbu continue unutar unutarnje for petlje. Primijetite kod,

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

Ovdje se continuenaredba izvršava kada je vrijednost j neparna. Stoga program ispisuje samo one parne dane.

Vidimo da je continueizjava utjecala samo na unutarnju petlju. Vanjska petlja radi bez problema.

Zanimljivi članci...