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é for
smyč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 for
smyčku uvnitř jiné for
smyč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 for
smyčky vložit while
smyč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 break
pří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í for
smyč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 continue
pří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 continue
příkaz proveden, když je hodnota j lichá. Program proto tiskne pouze ty dny, které jsou sudé.
Vidíme, že continue
prohlášení ovlivnilo pouze vnitřní smyčku. Vnější smyčka funguje bez problémů.