Ú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:
    switch vyhodnotí jeden výraz a poté porovnává jeho výsledek s hodnotami u jednotlivých case. Jakmile najde první shodu, provede kód v tomto case.

  • Shoda je přísná:
    Porovnání v switch je v JavaScriptu striktní (jako ===), tedy porovnává hodnotu i typ. Řetězec "1" se neshoduje s číslem 1.

  • break je klíčový:
    Bez break by program pokračoval i do dalších větví („propadávání“ – fall-through). break proto 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 if vždy explicitně porovnáváme, např. if (podminka == true). U switch se 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. Bez break program pokračuje do další větve a provede i její kód.

  • Neshoda typu: switch porovnává přísně (jako ===). case 1 se 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ě, switch není vhodný – použijte if – else if – else s 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řed switch.

Shrnutí

  • switch vyhodnocuje 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“.

  • default je 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ý.