Gyakorlati alapok
Ágyazzunk be a for ciklusnak! (az egybeágyazott for ciklusok)
Az előző, A for ciklus című fejezet alapszinten bemutatta a for ciklus működését. A fejezet fő jellegzetessége az volt, hogy csupán egyetlen ciklust tanulmányoztunk, holott roppant érdekes, bár nagyon nehezen olvasható, értelmezhető kódlehetőség az egybeágyazott for ciklusok használata. Ekkor a fő for ciklus tartalmaz még minimum 1 belső ciklust is. Itt már joggal vetődik fel a kérdés, hogy mi a végrehajtási sorrend? Nos, ehhez jelöljük meg mindegyik ciklust egy betűvel:
-
(fő) ciklus - F
-
(belső) ciklus - B
public class Main {
public static void main(String[] args) {
for(int i = 1; i <= 5; i++){
System.out.print("F" + i + " ");
for(int j = 1; j <= 5; j++){
System.out.print("B" + i + " ");
}
}
}
}
Végeredmény:
F1 B1 B1 B1 B1 B1
F2 B2 B2 B2 B2 B2
F3 B3 B3 B3 B3 B3
F4 B4 B4 B4 B4 B4
F5 B5 B5 B5 B5 B5
Jól láthatjuk a ciklusok lefutását:
-
lefut az 1. főciklus és kiírja: F1,
-
beleugrik az 1. belső ciklusba és ekkor 5x írja ki: B1 B1 B1 B1 B1,
-
lefut a 2. főciklus és kiírja: F2,
-
beleugrik a 2. belső ciklusba és ekkor 5x írja ki: B2 B2 B2 B2 B2,
-
stb.
Ezután már van elég bátorságunk 4 db "teljesen összekuszálódott" for ciklus működésének tanulmányozására! A ciklusok azonosítása a következő:
-
(fő) ciklus - F
-
(1. belső) ciklus - B
-
(2. belső) ciklus - BB
-
(3. belső) ciklus - BBB
public class Main {
public static void main(String[] args) {
for(int i = 1; i <= 3; i++){
System.out.print("F" + i + " ");
for(int j = 1; j <= 3; j++){
System.out.print("B" + i + " ");
for(int k =
1; k <= 3; k++){
System.out.print("BB" + i + " ");
for(int l = 1; l <= 3; l++){
System.out.print("BBB" + i + " ");
}
}
}
}
}
}
Végeredmény főciklusonként szétbontva:
-
F1
-
B1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
-
B1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
-
B1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
-
BB1
-
BBB1 BBB1 BBB1
1 db főciklus-sorozat tehát 22 ciklusból áll. A további sorozat:
-
F2 B2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2 B2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2 B2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2 BB2 BBB2 BBB2 BBB2
-
F3 B3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3 B3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3 B3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3 BB3 BBB3 BBB3 BBB3