Vgnezdena zanka v Javi (z primeri)

V tej vadnici bomo s pomočjo primerov spoznali ugnezdene zanke v Javi.

Če zanka obstaja znotraj telesa druge zanke, se imenuje ugnezdena zanka. Tu je primer ugnezdene forzanke.

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

Tu uporabljamo forzanko znotraj druge forzanke.

Vgnezdeno zanko lahko 3 tedne ponavljamo vsak dan v tednu.

V tem primeru lahko ustvarimo zanko za ponovitev trikrat (3 tedne). In znotraj zanke lahko ustvarimo še eno zanko, ki se ponovi 7-krat (7 dni).

Primer 1: Java, ugnezdena za zanko

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

Izhod

Teden: 1 dan: 1 dan: 2 dan: 3…. Teden: 2 dan: 1 dan: 2 dan: 3….….

V zgornjem primeru se zunanja zanka ponovi 3-krat in natisne 3 tedne. Notranja zanka se ponovi 7-krat in izpiše 7 dni.

Ugnezdene zanke lahko ustvarimo tudi z while in na podoben način naredimo … medtem ko.

Opomba : Mogoče je uporabiti eno vrsto zanke znotraj telesa druge zanke. Na primer, lahko v forzanko vstavimo whilezanko.

Primer 2: Java for zanka znotraj zanke while

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

Izhod :

Teden: 1 dan: 1 dan: 2 dan: 3…. Teden: 2 dan: 1 dan: 2 dan: 3….….

Tu lahko vidite, da je rezultat tako primera 1 kot primera 2 enak.

Primer 3: Vgnezdene zanke Java za ustvarjanje vzorca

Vgnezdeno zanko v Javi lahko uporabimo za ustvarjanje vzorcev, kot so polna piramida, polpiramida, obrnjena piramida itd.

Tukaj je program za ustvarjanje pol piramidnega vzorca z uporabo ugnezdenih zank.

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

Izhod

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

Če želite izvedeti več, obiščite program Java za tiskanje piramid in vzorcev.

prekinite in nadaljujte znotraj gnezdenih zank

Ko uporabimo breakstavek znotraj notranje zanke, ta zaključi notranjo zanko, ne pa tudi zunanjo zanko. Na primer

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

Izhod

Teden: 1 dan: 1 dan: 2…. Teden: 2 Teden: 3 Dan: 1 Dan: 2….….

V zgornjem primeru smo uporabili izjavo break znotraj notranje forzanke. Tu program preskoči zanko, ko je i 2 .

Dnevi za 2. teden se torej ne natisnejo. Vendar zunanja zanka, ki tiska teden, ni prizadeta.

Podobno, ko uporabimo continuestavek znotraj notranje zanke, preskoči trenutno ponovitev samo notranje zanke. Zunanja zanka ni prizadeta. Na primer

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

Izhod

 Teden: 1 dnevi: 2 dnevi: 4 dnevi: 6 teden: 2 dnevi: 2 dnevi: 4 dnevi: 6 teden: 3 dnevi: 2 dnevi: 4 dnevi: 6

V zgornjem primeru smo uporabili stavek continue znotraj notranje zanke for. Upoštevajte kodo,

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

Tu se continuestavek izvede, kadar je vrednost j neparna. Zato program tiska samo tiste dneve, ki so enakomerni.

Vidimo lahko, da je continueizjava vplivala samo na notranjo zanko. Zunanja zanka deluje brez težav.

Zanimive Članki...