V tomto tutoriále sa pomocou príkladov dozvieme o vnorených slučkách v Jave.
Ak slučka existuje v tele inej slučky, nazýva sa to vnorená slučka. Tu je príklad vnorenej for
slučky.
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Tu používame for
slučku vo vnútri inej for
slučky.
Vnorenú slučku môžeme použiť na iteráciu cez každý deň v týždni po dobu 3 týždňov.
V takom prípade môžeme vytvoriť slučku na iteráciu trikrát (3 týždne). A vo vnútri slučky môžeme vytvoriť ďalšiu slučku na opakovanie 7-krát (7 dní).
Príklad 1: Java vnorená pre slučku
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); ) ) ) )
Výkon
Týždeň: 1 deň: 1 deň: 2 deň: 3…. Týždeň: 2 deň: 1 deň: 2 deň: 3….….
Vo vyššie uvedenom príklade vonkajšia slučka trikrát iteruje a tlačí 3 týždne. A vnútorná slučka iteruje 7 krát a vytlačí sa 7 dní.
Môžeme tiež vytvárať vnorené slučky s while a robiť … while podobným spôsobom.
Poznámka : Jeden typ slučky je možné použiť vo vnútri tela inej slučky. Napríklad môžeme vložiť for
slučku dovnútra while
slučky.
Príklad 2: Java for loop vo vnútri while cyklu
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; ) ) )
Výstup :
Týždeň: 1 deň: 1 deň: 2 deň: 3…. Týždeň: 2 deň: 1 deň: 2 deň: 3….….
Tu vidíte, že výstup príkladu 1 aj príkladu 2 je rovnaký.
Príklad 3: Vnorené slučky Java na vytvorenie vzoru
Vnorenú slučku v Jave môžeme použiť na vytvorenie vzorov, ako je plná pyramída, polovičná pyramída, obrátená pyramída atď.
Tu je program na vytvorenie vzoru polovičnej pyramídy pomocou vnorených slučiek.
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(""); ) ) )
Výkon
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Ak sa chcete dozvedieť viac, navštívte program Java a vytlačte pyramídu a vzory.
zlomiť a pokračovať vo vnútri vnorených slučiek
Keď použijeme break
príkaz vo vnútri vnútornej slučky, ukončí sa vnútorná slučka, ale nie vonkajšia slučka. Napríklad,
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); ) ) ) )
Výkon
Týždeň: 1 deň: 1 deň: 2…. Týždeň: 2 Týždeň: 3 Deň: 1 Deň: 2….….
Vo vyššie uvedenom príklade sme použili príkaz break vo vnútornej for
slučke. Tu program preskočí slučku, keď je i 2 .
Dni v 2. týždni sa preto nevypisujú. Vonkajšia slučka, ktorá tlačí týždeň, to však neovplyvní.
Podobne, keď použijeme continue
príkaz vo vnútri vnútornej slučky, preskočí iba aktuálnu iteráciu vnútornej slučky. Vonkajšia slučka nie je ovplyvnená. Napríklad,
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); ) ) ) )
Výkon
Týždeň: 1 deň: 2 dni: 4 dni: 6 týždeň: 2 dni: 2 dni: 4 dni: 6 týždeň: 3 dni: 2 dni: 4 dni: 6
Vo vyššie uvedenom príklade sme použili príkaz continue vo vnútornej slučke for. Všimnite si kód,
if(j % 2 != 0) ( continue; )
Tu sa continue
príkaz vykoná, keď je hodnota j nepárna. Preto program vytlačí iba tie dni, ktoré sú párne.
Vidíme, že continue
tvrdenie ovplyvnilo iba vnútornú slučku. Vonkajšia slučka funguje bez problémov.