Vnořené cykly

Cyklus může obsahovat jiný cyklus. Říká se mu pak vnořený cyklus. Při každém průchodu vnějšího cyklu proběhne vnitřní cyklus celý. Nakresleme obdélník z hvězdiček, 3 řádky po 5 hvězdičkách:

for (int radek = 1; radek <= 3; radek++) {
    for (int sloupec = 1; sloupec <= 5; sloupec++) {
        printf("*");
    }
    printf("\n");
}

Vypíše:

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

Vnější cyklus začne prvním řádkem a vnitřní cyklus vypíše pět hvězdiček. printf("*") nemá \n, takže se hvězdičky řadí vedle sebe na jeden řádek. Po vnitřním cyklu řádek ukončí printf("\n"). Teprve pak přejde vnější cyklus na druhý řádek a vnitřní cyklus znovu vypíše pět hvězdiček. Blok vnitřního cyklu se tak provede 3 × 5 = 15krát. Proměnné obou cyklů pojmenujte různě (tady radek a sloupec), abyste věděli, která je která.

Všimněte si, kde je printf("\n");: za uzavírací závorkou vnitřního cyklu, ale pořád uvnitř vnějšího cyklu. Provede se pokaždé, když vnitřní cyklus vypíše celý řádek. Kdyby byl uvnitř vnitřního cyklu, byla by každá hvězdička na samostatném řádku. Kdyby byl až za vnějším cyklem, bylo by všech 15 hvězdiček na jednom dlouhém řádku.

Vnitřní cyklus může používat proměnnou vnějšího cyklu. Tato malá násobilka vypisuje radek * sloupec a za ním mezeru:

for (int radek = 1; radek <= 3; radek++) {
    for (int sloupec = 1; sloupec <= 5; sloupec++) {
        printf("%d ", radek * sloupec);
    }
    printf("\n");
}
1 2 3 4 5 
2 4 6 8 10 
3 6 9 12 15 

Mezera je i na konci každého řádku. Není vidět a tady nevadí.

Proměnnou vnějšího cyklu může používat i podmínka vnitřního cyklu. S podmínkou sloupec <= radek proběhne vnitřní cyklus na prvním řádku jednou, na druhém dvakrát a tak dále, takže hvězdičky vytvoří trojúhelník:

for (int radek = 1; radek <= 4; radek++) {
    for (int sloupec = 1; sloupec <= radek; sloupec++) {
        printf("*");
    }
    printf("\n");
}
*
**
***
****

Ještě jedna věc: break ve vnitřním cyklu ukončí jen vnitřní cyklus. Vnější cyklus pokračuje dalším průchodem.

Pokyny

Nakreslete obdélník z hvězdiček: 4 řádky a v každém 6 hvězdiček. Použijte dva vnořené cykly for: vnější s proměnnou radek a vnitřní s proměnnou sloupec. Vnitřní cyklus vypíše jednu hvězdičku * bez \n. Za ním, ale pořád uvnitř vnějšího cyklu, ukončí řádek printf("\n");.

Pod obdélník vypište malou násobilku od 1 do 5: pět řádků a v každém pět čísel oddělených mezerou. První řádek je 1 2 3 4 5, druhý 2 4 6 8 10 a poslední 5 10 15 20 25. Použijte opět dva vnořené cykly for a každý řádek ukončete pomocí printf("\n"); ve vnějším cyklu.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

9/11