Vnořená smyčka v Javě (s příklady)

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ů.

Zajímavé články...