Vnořený C ++ (s příklady)

V tomto tutoriálu se dozvíme o vnořených smyčkách v C ++. Naučíme se používat vnořené pro, while a dělat … while smyčky v programu.

Smyčka v jiné smyčce se nazývá vnořená smyčka. Vezměme si příklad,

Předpokládejme, že chceme procházet každý den v týdnu po dobu 3 týdnů.

Abychom toho dosáhli, můžeme vytvořit vnořenou smyčku pro iteraci třikrát (3 týdny). A uvnitř smyčky můžeme vytvořit další smyčku k iteraci 7krát (7 dní). Například,

Příklad: Vnořeno pro smyčku

 // C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )

Výstup

 Týden: 1 den: 1 den: 2 den: 3… Týden: 2 den: 1 den: 2 den: 3…… 

Můžeme vytvářet vnořené smyčky s while a dělat … while podobným způsobem.

Příklad: Zobrazení vzoru

 // C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )

Výstup

 * * * * * * * * * * * * * * * * 

V tomto programu vnější smyčka iteruje od i == 1do i == rows.

Vnitřní smyčka iteruje od j == 1do j == columns. Uvnitř vnitřní smyčky vytiskneme znak '*'.

rozbijte a pokračujte uvnitř vnořených smyček

Když použijeme příkaz break uvnitř vnitřní smyčky, ukončí vnitřní smyčku, ale ne vnější smyčku. Například,

 int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) )

Výstup

 Týden: 1 den: 1 den: 2… Týden: 2 Týden: 3 Den: 1 Den: 2… 

Tento program nespustí vnitřní smyčku, když je hodnota i, 2tj. Nevytiskne dny 2. týdne. Vnější smyčka, která tiskne týdny, není ovlivněna.

Podobně, když použijeme příkaz continue uvnitř vnitřní smyčky, přeskočí pouze aktuální iteraci vnitřní smyčky. Vnější smyčka není ovlivněna. Například,

 int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j%2 != 0) ( continue; ) cout << " Day:" << j << endl; ) )

Výstup

 Týden: 1 den: 2 den: 4 den: 6 týden: 2 den: 2 den: 4 den: 6 týden: 3 den: 2 den: 4 den: 6

Tento program tiskne pouze ty dny, které jsou sudé.

Kdykoli je days_in_week lichý, continuepříkaz přeskočí tuto iteraci vnitřní smyčky.

Zajímavé články...