Úloha 2 – Fall-through vs. break – chování větvení
| Stránky: | Moodle ZČU |
| Kurz: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Kniha: | Úloha 2 – Fall-through vs. break – chování větvení |
| Vytiskl(a): | Nepřihlášený host |
| Datum: | neděle, 18. října 2026, 15.54 |
Úvod do úlohy
V předchozích ukázkách jste viděli základní konstrukci switch. Aby ale fungoval správně a přehledně, je klíčové rozumět dvěma prvkům: break a default. Klíčové slovo break říká programu, že po vykonání jednoho case se má ze switch vyskočit a nepokračovat do dalších větví. Pokud break zapomeneme, dojde k tzv. propadávání (fall-through), kdy se vykonají i následující bloky. To může být někdy záměr, ale ve většině úloh je to spíše chyba. Vedle toho default představuje záchytnou větev, která se provede tehdy, když žádný case neodpovídá zadané hodnotě.
Teorie a principy
-
break:-
Zastaví běh
switchpo dokončení odpovídající větve. -
Pokud chybí, provede se i následující
caseblok(y), dokud nenarazíme nabreaknebo konecswitch.
-
-
default:-
Je volitelná větev.
-
Spustí se, když žádný
caseneodpovídá hodnotě výrazu. -
Doporučuje se ji vždy používat jako „pojistku“, aby program nezůstal bez reakce.
-
Praktické příklady kódu
1. Switch bez break – nežádoucí propadávání:
Výsledek: Pokud cislo == 2, spustí se nejprve "Dva", ale protože chybí break, pokračuje i "Tři" a "Jiná
hodnota".
2. Správně použitý break:
Výsledek: Pokud cislo == 2, spustí se pouze "Dva".
3. Ukázka default jako výchozí větve:
Pokud hodnota není v žádném case, provede se větev default.
Typické chyby / záludnosti
-
Zapomenutý break – program spustí více větví než zamýšleno.
-
Chybějící default – pokud žádný
caseneodpovídá, program nezareaguje (ne vždy je to žádoucí). -
Špatné typy hodnot – porovnání v
switchje striktní (===), proto"1"se neshoduje s1.
Shrnutí
-
breakje nutné použít na konci každéhocase, jinak nastane propadávání. -
defaultse spustí, pokud žádnýcaseneodpovídá – funguje jako pojistka. -
Správné používání
breakadefaultděláswitchpřehledným a bezpečným pro údržbu.
Úloha
Zadání (kontext úlohy):
Napiš program, který podle čísla dne (1–3) zobrazí text. Připrav dvě verze:
-
Switch bez
break, kde dojde k propadávání. -
Switch se správně umístěným
break, kde se spustí jen jedna větev.
Student uvidí, jak se chová stejná hodnota v obou případech.
Cíl úlohy:
Procvičit význam break a pochopit rozdíl mezi fall-through a normálním průchodem switch.
Vstupní podmínky:
-
Student pracuje pouze s nově vytvořeným souborem
script.js. -
Do proměnné
dennastav hodnotu 1, 2 nebo 3 a sleduj rozdíly mezi oběma částmi kódu.
Požadovaný výstup:
-
Ve verzi bez
breakse přiden = 2spustí více větví po sobě. -
Ve verzi se
breakse spustí pouze odpovídající větev.
Doplňující pokyny:
-
V obou verzích použij
alert, ať je výsledek jasně vidět. -
Přidej i větev
default, aby byla vidět reakce na jiné hodnoty. -
Porovnávání v
switchje přísné (===).
Řešení úlohy
Co je zde splněno
-
Do proměnné
denje uložen číselný údaj. -
Dvě různé ukázky chování: bez
break(propadávání) a sbreak(jen jedna větev). -
Přidána větev
defaultpro jiné hodnoty. -
Výstup je řešen pomocí
alert(), aby byl výsledek jasně vidět.
Poznámky
Pokud je
den = 2a kód nemábreak, spustí se postupněDen 2,Den 3aJiný den.Pokud je
den = 2a kód mábreak, spustí se pouzeDen 2.Díky tomu je dobře vidět rozdíl mezi „fall-through“ a běžným použitím
switch.