Úloha 3 – Řízení toku programu pomocí podmínek
Úvod do úlohy
V předchozích cvičeních jste si vyzkoušeli jednoduché podmínky i složitější logické výrazy. Často ale nastane situace, kdy nestačí rozhodovat jen mezi dvěma možnostmi „ano/ne“. Potřebujeme vybrat jednu z více variant – například určit známku podle počtu bodů nebo zobrazit zprávu podle zadaného věku. V takových případech je nevhodné psát do sebe zanořené if bloky, protože kód rychle ztrácí přehlednost. Místo toho je lepší použít konstrukci else
if, která umožní testovat více podmínek na stejné úrovni.
Teorie a principy
-
if– testuje první podmínku. -
else if– testuje další podmínku, pokud předchozí nebyla pravdivá. Lze jich použít několik za sebou. -
else– zachytí všechny zbývající případy, pokud žádná podmínka výše nebyla splněna.
Výhody použití else if:
-
kód je přehlednější než zanořené
ifbloky, -
podmínky se vyhodnocují postupně, a jakmile je jedna pravdivá, ostatní se už nekontrolují,
-
snadněji se přidávají nebo mění další větve rozhodování.
Praktické příklady kódu
1. Známkování pomocí else if:
2. Porovnání s vnořeným if (méně přehledné):
Typické chyby / záludnosti
-
Zbytečné vnořování if: studenti mají tendenci psát
ifuvnitřelse, i když stačí použítelse if. -
Nepřesně seřazené podmínky: pořadí větví je důležité. Jakmile se splní jedna podmínka, ostatní se už nekontrolují. Pokud byste například dali
if (body >= 60)hned na začátek, nikdy by se kód pro 90+ bodů nespustil. -
Chybějící else: není povinné, ale často je dobré mít „záchytnou“ větev pro všechny ostatní případy.
Shrnutí
-
Konstrukce
else ifumožňuje testovat více podmínek na stejné úrovni. -
Zlepšuje čitelnost a údržbu kódu oproti vnořeným podmínkám.
-
Podmínky se vyhodnocují shora dolů, první splněná ukončí další testování.
-
Část
elsemůže sloužit jako výchozí varianta, pokud neplatí žádná z předchozích podmínek.