Úloha 1 – Konstrukce switch a větve case pro různé příkazy
Úvod do úlohy
Přepínač switch je elegantní alternativa k vícenásobnému větvení pomocí if – else if – else. Hodí se tehdy, když rozhodujeme podle jedné jediné hodnoty (např. podle názvu dne, kódu stavu, typu akce). Díky switch je kód přehlednější: výraz vyhodnotíme jednou a podle první odpovídající větve (case) spustíme konkrétní blok kódu.
Teorie a principy
-
Základní tvar:
switch (vyraz) { case hodnotaA: /* kód */ break; case hodnotaB: /* kód */ break; default: /* kód */ } -
Jak to funguje:
switchvyhodnotí jeden výraz a poté porovnává jeho výsledek s hodnotami u jednotlivýchcase. Jakmile najde první shodu, provede kód v tomtocase. -
Shoda je přísná:
Porovnání vswitchje v JavaScriptu striktní (jako===), tedy porovnává hodnotu i typ. Řetězec"1"se neshoduje s číslem1. -
breakje klíčový:
Bezbreakby program pokračoval i do dalších větví („propadávání“ – fall-through).breakproto téměř vždy na konci každé větve musí být. -
default:
Volitelná „záchytná“ větev, která se spustí, když se neshodí žádnýcase.
Poznámka k našemu stylu v kurzu: V příkladech s
ifvždy explicitně porovnáváme, např.if (podminka == true). Uswitchse o porovnání stará samotná konstrukce (přísná shoda jako===).
Praktické příklady kódu
1) Základní switch nad hodnotou řetězce
2) Switch v jednoduché stránce (výběr a zobrazení stavu)
3) Ukázka propadávání (fall-through) – záměrně bez break
Typické chyby / záludnosti
-
Zapomenuté
break: Nejčastější chyba. Bezbreakprogram pokračuje do další větve a provede i její kód. -
Neshoda typu:
switchporovnává přísně (jako===).case 1se neshoduje s"1". Pokud čtete hodnotu z formuláře, je často typu string. -
Duplicitní kód v každé větvi: Společné kroky (např. nastavení textu nebo třídy) proveďte jednou až po
switch. -
Nevhodné použití
switch: Pokud se rozhodujete podle více výrazů současně,switchnení vhodný – použijteif – else if – elses logickými operátory a explicitními porovnáními (== true,== false). -
Nejasné hodnoty
case: Dávejte srozumitelné konstanty (řetězce, čísla). Pokud je potřeba vstup sjednotit (např. malá/velká písmena), udělejte to předswitch.
Shrnutí
-
switchvyhodnocuje jeden výraz a spouští první odpovídajícícase. -
Porovnání je striktní (jako
===), pozor na typy. -
Každou větev zakončete
break, pokud nechcete záměrně „propadávat“. -
defaultje záchytná větev pro všechny ostatní případy. -
Společné kroky provádějte mimo větvení – kód bude čistší a snadno udržovatelný.