Späť na blog

Rozhodovanie pomocou príkazu switch v JavaScripte

Rozhodovanie pomocou príkazu switch v JavaScripte

Úvod

Podmienkové príkazy sú jedným z najdôležitejších riadiacich tokov v akomkoľvek programovacom jazyku. Používame ich na určenie správania vykonávania na základe určitej podmienky. V Javascript, podmienkové bloky môžu byť vytvorené pomocou if, else if, else, a switch príkazov.

Príkaz switch uľahčuje čitateľnosť riadiaceho toku tým, že rozhoduje na základe možných výsledkov výrazu. V závislosti od zodpovedajúceho prípadu použitia sa môže vykonať jeden alebo viac blokov kódu. Riadenie switch je podobné príkazu else if. Avšak, switch má z hľadiska syntaxe čitateľnejšiu štruktúru. Je tiež ideálny pre scenáre s viacerými možnými výsledkami.

V tomto návode sa zameriame na príkaz switch v Javascripte a implementujeme ho na zostavenie zložitých riadiacich štruktúr. Naučíme sa tiež, ako používať príkazy break , case, a default v rámci bloku switch na usmernenie toku riadenia.

Používanie príkazu Switch

Príkaz switch funguje tak, že porovnáva hodnotu premennej s možnými výrazmi. Potom vykoná blok kódu, ktorý zodpovedá výsledku. Syntax príkazu switch  sa nelíši od príkazu if. Stručne povedané, syntax príkazu switch sa píše takto:

Nižšie je uvedený príklad príkazu switch. Má dva prípady alebo dva možné výsledky spolu s predvolenou možnosťou určenou kľúčovým slovom default. Táto predvolená možnosť sa vykoná, keď sa vykonávanie ukončí alebo keď sa nenájde žiadny zhodný prípad:

Vyššie uvedený kód sa vykoná nasledovne:

  1. Najprv sa vyhodnotí výraz.

  2. Ďalej sa výsledok výrazu porovná s case x. Ak sa hodnota zhoduje, vykoná sa blok kódu pod case x sa vykoná.

  3. Ak sa výraz nezhoduje s case x, potom sa porovnáva case y. Ak sa nájde zhoda, potom sa kód case y vykoná.

  4. Nakoniec, ak sa nezhoduje ani case x ani case y, potom sa vykoná default kód a riadenie sa presunie mimo switch bloku.

Fungujúci príklad

Aby sme pochopili príkaz switch, pozrime sa na fungujúci príklad. Získame hodnotu dňa v týždni pre aktuálny dátum pomocou metódy getDay() objektu Date v Javascripte. Táto hodnota je číslo, pre nedeľu až po 6 pre sobotu. Vyhodnotíme ju voči hodnotám, aby sme určili, o aký deň v týždni ide:

Ďalej túto hodnotu pošleme príkazu switch. Príkaz switch prebehne zhora nadol, aby ju porovnal s prípadmi a určil, o aký deň v týždni ide. Keď sa nájde prípad, break príkaz zastaví switch blok pred pokračovaním vo vyhodnocovaní príkazov:

V závislosti od hodnoty vrátenej z getDate() metódy, bude testovaná voči jednotlivým prípadom jeden po druhom, počnúc zhora. Výstup sa bude líšiť v závislosti od dňa, kedy ste kód spustili. Predvolený blok kódu (default) je umiestnený tak, aby sme v prípade, že sa nezhoduje žiadny prípad, mohli túto situáciu vyriešiť. V tomto kóde sa však default nikdy nezavolá, keďže existuje len obmedzený počet dní v týždni.

Príkaz break zabezpečuje, že po nájdení zhody sa už netestujú žiadne ďalšie prípady a riadenie vystúpi z príkazu switch. Vďaka tomu je program efektívnejší a rýchlejší.

Testovanie rozsahov hodnôt v príkaze Switch

Doteraz sme sa zaoberali veľmi jednoduchými prípadmi použitia. Môžu však nastať situácie, kedy je potrebné testovať rozsah hodnôt namiesto jednej konkrétnej hodnoty. Môžeme to urobiť tak, že náš výraz nastavíme na true a vykonáme operáciu v rámci každého príkazu case.

Poďme si tento prípad použitia ukázať na príklade. Vezmeme číslo a potom ho skonvertujeme na známku pomocou nasledujúcej kategorizácie:

  • Známka 90 a viac 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 alebo menej je F

Tieto príkazy zapíšeme ako príkazy switch. Nižšie je uvedený kód:

Na rozdiel od vyššie uvedených príkladov kódu sme tu výraz v zátvorke nastavili ako true. Preto sa vykoná ten príkaz case, ktorý sa zhoduje s hodnotou true. Presne ako pri príkaze else if, vykoná sa prvý príkaz, ktorý sa zhoduje so špecifikovanou hodnotou. Tu bude výstupom B, napriek tomu, že aj C a D tiež zodpovedajú výrazu.

Viacnásobné prípady

Ak chcete mať viac ako jeden prípad s rovnakým blokom kódu, je to tiež možné. Je to analogické s podmienkou alebo v príkaze if. V takýchto scenároch môžeme pre každý blok kódu špecifikovať viac ako jeden prípad.

Na ilustráciu tohto konceptu uvedieme príklad s mesiacmi v roku. Tieto mesiace rozdelíme do ročných období. Najprv použijeme novú metódu Date() na zistenie čísla zodpovedajúceho aktuálnemu mesiacu a priradíme ho do premennej month. Metóda Date().getMonth() vracia číslo od 0  do 11, pričom 0 predstavuje január a 11 patrí decembru.

Kategorizáciu vykonáme podľa nasledujúcej špecifikácie:

  • Zima: január, február a marec

  • Jar: apríl, máj a jún

  • Leto: júl, august a september

  • Jeseň: október, november a december

Takto bude kód vyzerať:

Po vykonaní vyššie uvedeného kódu sa v závislosti od mesiaca v konzole zobrazí názov ročného obdobia.

Záver

V tomto návode sme si ukázali, ako používať príkaz switch v aplikáciách JavaScript. Taktiež sme aplikovali príkaz switch na rozsah a viacnásobné prípady spolu s kľúčovým slovom default. Ak sa chcete dozvedieť viac o JavaScripte, môžete si pozrieť nasledujúce návody:

Príjemné programovanie!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.