Úloha 5 – Kombinace for, while a do…while v jedné aplikaci
Úvod do úlohy
V závěrečné fázi práce s cykly je důležité nejen umět napsat jednotlivé konstrukce (for, while, do…while), ale také zvolit ten správný typ cyklu pro konkrétní úlohu. V praxi totiž nejde o to použít „jakýkoli cyklus, který funguje“, ale napsat kód tak, aby byl čistý, čitelný a efektivní. Správná volba cyklu usnadňuje orientaci v kódu, zabraňuje chybám a zajišťuje, že program dělá přesně to, co má.
Teorie a principy
-
forcyklus-
Nejvhodnější, když dopředu víme počet opakování (např. průchod přes pole, 10 opakování výpočtu, vykreslení 5 řádků tabulky).
-
Jasně ukazuje inicializaci, podmínku a krok na jednom místě.
-
-
whilecyklus-
Používá se, když neznáme počet opakování předem a potřebujeme opakovat, dokud platí určitá podmínka.
-
Může proběhnout i 0×, pokud podmínka není splněna hned od začátku.
-
-
do…whilecyklus-
Vždy proběhne alespoň jednou, protože podmínka se testuje až po prvním průchodu.
-
Ideální pro úlohy, kde se akce musí provést minimálně jednou (např. vyžádání vstupu od uživatele).
-
-
Refaktoring cyklů:
-
while → for: Pokud je počet průchodů známý předem, je kód sforpřehlednější. -
for → while: Pokud průchody závisejí na podmínce, kterou nelze předem odhadnout, je lepšíwhile. -
while → do…while: Pokud potřebujeme, aby se blok provedl aspoň jednou, i kdyby podmínka hned neseděla.
-
Praktické příklady kódu
1. While nahrazený forem (počet opakování je známý)
2. For nahrazený while (neznáme počet opakování)
3. While nahrazený do…while (potřebujeme aspoň jeden průchod)
4. Kombinace s vnořeným cyklem (refaktor na čitelnější zápis)
Typické chyby / záludnosti
-
Použití nevhodného cyklu – např.
whilepro pevně známý počet opakování → kód je zbytečně dlouhý a hůře se čte. -
Zapomenutá změna podmínky v
whileado…while→ vznikne nekonečný cyklus. -
For s nelogickými částmi – studenti někdy nechají inicializaci nebo krok prázdný a píšou vše do těla smyčky → horší čitelnost.
-
Nevyužití síly
do…while– studenti často používajíwhile, i když je potřeba minimálně jeden průchod.
Shrnutí
-
For: když víme počet opakování předem.
-
While: když opakování závisí na podmínce a není jasné, kolikrát proběhne.
-
Do…while: když potřebujeme aspoň jeden průchod, podmínka se testuje až na konci.
-
Refaktoring: vyberte cyklus podle povahy problému, tím zvýšíte čitelnost a udržovatelnost kódu.
-
Správná volba cyklu je znakem dobré praxe – kód je kratší, srozumitelnější a méně náchylný k chybám.