Úloha 4 – Vnořené for smyčky, proměnná stop a příkazy continue/break

Úvod do úlohy

Jakmile zvládnete základní cykly for, while a do…while, dalším krokem jsou pokročilejší konstrukce. V reálných programech se často setkáte se situací, kdy je potřeba opakovat cyklus uvnitř jiného cyklu – tomu říkáme vnořený cyklus. Typickým příkladem je procházení tabulky (dvojrozměrného pole), generování mřížky HTML prvků nebo kombinování více hodnot mezi sebou.
Dále je důležité znát příkazy break a continue, které nám dávají větší kontrolu nad během cyklu. break dokáže smyčku okamžitě ukončit, zatímco continue přeskočí aktuální průchod a pokračuje dalším.

Teorie a principy

  • Vnořené cykly: cyklus uvnitř jiného cyklu.

    • Vnější cyklus řídí „řádky“, vnitřní cyklus „sloupce“.

    • Počet průchodů se násobí (např. 3×3 tabulka → 9 průchodů).

  • break: okamžitě ukončí aktuální cyklus.

    • Pokud je cyklus vnořený, ukončí se pouze ten, ve kterém se nacházíme.

    • Používá se, když už nemá smysl pokračovat (např. při nalezení hledané hodnoty).

  • continue: ukončí aktuální průchod a skočí na další iteraci cyklu.

    • Hodí se, pokud chceme některé hodnoty přeskočit, ale zbytek projít.

  • Pozor:

    • Vnořené cykly se snadno stanou složitými a nepřehlednými. Používejte je s rozvahou.

    • Pokud chcete ukončit oba cykly naráz, je často lepší kód přeorganizovat (např. pomocí funkce s return nebo pomocí pomocné proměnné).

Praktické příklady kódu

1. Vnořený for – tabulka součtů


2. Vnořený cyklus pro 2D pole


3. Použití break – hledání hodnoty v poli


4. Použití continue – přeskočení lichých čísel


5. Break pouze vnitřního cyklu

Pro každé i proběhne vnitřní cyklus jen jednou (j=0), protože při j=1 se ukončí.

Typické chyby / záludnosti

  • Nekontrolovaný růst složitosti – při dvou nebo více vnořených cyklech se počet průchodů rychle násobí.

  • Záměna break a continue – break ukončí cyklus úplně, continue jen přeskočí jeden průchod.

  • Nedostatečná inicializace proměnných – pokud se proměnná používá ve více cyklech, musí být správně resetována.

  • Pokus o ukončení obou cyklů jedním break – funguje pouze na ten aktuální, ne na vnější.

Shrnutí

  • Vnořené cykly: vhodné pro vícerozměrná data, každý průchod vnější smyčky spustí celý vnitřní cyklus.

  • break: ukončí aktuální cyklus, vhodné při nalezení hledané hodnoty.

  • continue: přeskočí aktuální iteraci a pokračuje dalším průchodem.

  • Dávejte pozor na přehlednost a výkon – přílišné vnoření nebo nevhodné použití break/continue zhoršuje kód.