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 for
petlje.
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Ovdje koristimo for
petlju unutar druge for
petlje.
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, for
unutar while
petlje 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 break
izjavu 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 for
petlje. 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 continue
izraz 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 continue
naredba izvršava kada je vrijednost j neparna. Stoga program ispisuje samo one parne dane.
Vidimo da je continue
izjava utjecala samo na unutarnju petlju. Vanjska petlja radi bez problema.