V tomto výukovém programu se na příkladech seznámíme s vnořenými smyčkami v Javě.
Pokud smyčka existuje uvnitř těla jiné smyčky, nazývá se to vnořená smyčka. Zde je příklad vnořené forsmyčky.
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Zde používáme forsmyčku uvnitř jiné forsmyčky.
Vnořenou smyčku můžeme použít k iteraci každý den v týdnu po dobu 3 týdnů.
V tomto případě můžeme vytvořit smyčku k iteraci třikrát (3 týdny). A uvnitř smyčky můžeme vytvořit další smyčku k iteraci 7krát (7 dní).
Příklad 1: Java vnořená pro smyč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ýstup
Týden: 1 den: 1 den: 2 den: 3…. Týden: 2 Den: 1 Den: 2 Den: 3….….
Ve výše uvedeném příkladu vnější smyčka iteruje třikrát a tiskne 3 týdny. A vnitřní smyčka iteruje 7krát a vytiskne 7 dní.
Můžeme také vytvářet vnořené smyčky s while a dělat … while podobným způsobem.
Poznámka : Jeden typ smyčky je možné použít uvnitř těla jiné smyčky. Například můžeme do forsmyčky vložit whilesmyčku.
Příklad 2: Java pro smyčku uvnitř smyčky 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; ) ) )
Výstup :
Týden: 1 den: 1 den: 2 den: 3…. Týden: 2 Den: 1 Den: 2 Den: 3….….
Zde vidíte, že výstup příkladu 1 i příkladu 2 je stejný.
Příklad 3: Vnořené smyčky Java k vytvoření vzoru
Můžeme použít vnořenou smyčku v Javě k vytváření vzorů, jako je plná pyramida, poloviční pyramida, obrácená pyramida atd.
Zde je program pro vytvoření vzoru půl pyramidy pomocí vnořených smyček.
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ýstup
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Chcete-li se dozvědět více, navštivte program Java a vytiskněte pyramidu a vzory.
rozbijte a pokračujte uvnitř vnořených smyček
Když použijeme breakpříkaz uvnitř vnitřní smyčky, ukončí vnitřní smyčku, ale ne vnější smyčku. Napří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ýstup
Týden: 1 den: 1 den: 2…. Týden: 2 Týden: 3 Den: 1 Den: 2….….
Ve výše uvedeném příkladu jsme použili příkaz break uvnitř vnitřní forsmyčky. Zde program přeskočí smyčku, když i je 2 .
Dny v týdnu 2 se proto nevytisknou. Vnější smyčka, která tiskne týden, však není ovlivněna.
Podobně, když použijeme continuepříkaz uvnitř vnitřní smyčky, přeskočí pouze aktuální iteraci vnitřní smyčky. Vnější smyčka není ovlivněna. Napří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ýstup
Týden: 1 den: 2 dny: 4 dny: 6 týden: 2 dny: 2 dny: 4 dny: 6 týden: 3 dny: 2 dny: 4 dny: 6
Ve výše uvedeném příkladu jsme použili příkaz continue uvnitř vnitřní smyčky for. Všimněte si kódu,
if(j % 2 != 0) ( continue; )
Zde je continuepříkaz proveden, když je hodnota j lichá. Program proto tiskne pouze ty dny, které jsou sudé.
Vidíme, že continueprohlášení ovlivnilo pouze vnitřní smyčku. Vnější smyčka funguje bez problémů.








