Zpět na blog

Rozhodování pomocí příkazu switch v Javascriptu

Rozhodování pomocí příkazu switch v Javascriptu

Úvod

Podmíněné příkazy jsou jedním z nejdůležitějších řídicích toků v jakémkoli programovacím jazyce. Používáme je k určení chování provádění na základě určité podmínky. V Javascript, podmíněné bloky lze sestavit pomocí if, else if, else, a switch příkazů.

Příkaz switch usnadňuje čtení řídicího toku tím, že rozhoduje na základě možných výsledků výrazu. V závislosti na odpovídajícím případu použití lze provést jeden nebo více bloků kódu. Řízení switch je podobné příkazu else if příkazu. Nicméně switch má z hlediska syntaxe čitelnější zápis. Je také ideální pro scénáře s více možnými výsledky.

V tomto návodu se zaměříme na příkaz switch v JavaScriptu a implementujeme jej k vytvoření složitých řídicích struktur. Naučíme se také, jak používat příkazy break , case, a default uvnitř bloku switch k řízení toku provádění.

Použití příkazu Switch

Příkaz switch funguje tak, že porovnává hodnotu proměnné s možnými výrazy. Poté provede blok kódu, který odpovídá výsledku. Syntaxe příkazu switch se neliší od příkazu if příkazu. Stručně řečeno, syntaxe příkazu switch se zapisuje takto:

Níže je uveden příklad příkazu switch. Má dva případy neboli dva možné výsledky spolu s výchozí možností určenou klíčovým slovem default. Tato výchozí možnost se provede, když provádění skončí nebo když není nalezen žádný odpovídající případ:

Výše uvedený kód se provádí následovně:

  1. Nejprve se vyhodnotí výraz.

  2. Dále se výsledek výrazu porovná s case x. Pokud hodnota odpovídá, provede se blok kódu pod case x .

  3. Pokud výraz neodpovídá case x, pak se porovná s case y. Pokud je nalezena shoda, provede se kód case y .

  4. Nakonec, pokud neodpovídá ani case x ani case y, provede se kód default a řízení se přesune mimo blok switch .

Praktický příklad

Abychom porozuměli příkazu switch, podívejme se na praktický příklad. Získáme hodnotu dne v týdnu pro aktuální datum pomocí metody getDay() metody objektu Date v JavaScriptu. Tato hodnota je číslo, pro neděli až po 6 což je pro sobotu. Vyhodnotíme ji vůči hodnotám, abychom určili, o jaký den v týdnu se jedná:

Dále tuto hodnotu předáme příkazu switch. Příkaz switch se provede odshora dolů, aby ji porovnal s případy a určil, o který den v týdnu se jedná. Jakmile je případ nalezen, příkaz break zastaví další vyhodnocování příkazů v bloku switch :

V závislosti na hodnotě vrácené z getDate() metody bude tato hodnota testována vůči jednotlivým případům jeden po druhém, počínaje shora. Výstup se bude lišit v závislosti na dni, kdy kód spustíte. Výchozí blok kódu (default) je umístěn proto, abychom mohli ošetřit situaci, kdy neodpovídá žádný případ. V tomto kódu se však default nikdy nezavolá, protože týden má pouze omezený počet dní.

Příkaz break zajišťuje, že jakmile dojde ke shodě s případem, žádné další případy se již netestují a řízení opustí příkaz switch. Díky tomu je program efektivnější a rychlejší.

Testování rozsahů v příkazu Switch

Až dosud jsme se zabývali velmi jednoduchými případy použití. Někdy je však potřeba testovat rozsah hodnot namísto jedné konkrétní hodnoty. Toho můžeme docílit nastavením našeho výrazu na true a provedením operace uvnitř každého příkazu case .

Pojďme si tento případ použití ukázat na příkladu. Vezmeme číslo a poté ho převedeme na známku pomocí následující kategorizace:

  • Známka 90 a více je A

  • Známka od 80 do 89 je B

  • Známka od 70 do 79 je C

  • Známka od 60 do 69 je D

  • Známka 59 nebo méně je F

Tyto příkazy zapíšeme jako příkazy switch. Níže je uveden kód:

Na rozdíl od výše uvedených příkladů kódu jsme zde výraz v závorce nastavili jako true. Proto se provede ten příkaz case, který odpovídá hodnotě true. Stejně jako u příkazu else if se provede první příkaz, který odpovídá zadané hodnotě. Zde bude výstupem B, i přes skutečnost, že i C a D také odpovídají výrazu.

Více případů

Pokud chcete mít více než jeden případ se stejným blokem kódu, je to také možné. To je obdobné jako podmínka nebo v příkazu if. V takových scénářích můžeme pro každý blok kódu specifikovat více než jeden případ.

Pro ilustraci tohoto konceptu uvedeme příklad s měsíci v roce. Tyto měsíce rozdělíme do ročních období. Nejprve použijeme novou metodu Date() k nalezení čísla odpovídajícího aktuálnímu měsíci a toto číslo přiřadíme proměnné month. Metoda Date().getMonth() vrací číslo od 0  do 11, přičemž 0 představuje leden a 11 prosinec.

Kategorizaci provedeme podle následující specifikace:

  • Zima: leden, únor a březen

  • Jaro: duben, květen a červen

  • Léto: červenec, srpen a září

  • Podzim: říjen, listopad a prosinec

Zde je ukázka, jak bude kód vypadat:

Po spuštění výše uvedeného kódu se v závislosti na měsíci v konzoli zobrazí název ročního období.

Závěr

V tomto návodu jsme si ukázali, jak používat příkaz switch v aplikacích v JavaScriptu. Příkaz switch jsme také aplikovali na rozsah a více případů společně s klíčovým slovem default. Pokud se chcete o JavaScriptu dozvědět více, můžete se podívat na následující návody:

Přejeme příjemné programování!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.