Vissza a bloghoz

Döntéshozatal switch utasítás használatával Javascriptben

Döntéshozatal switch utasítás használatával Javascriptben

Bevezetés

A feltételes utasítások az egyik legfontosabb vezérlési szerkezetet jelentik minden programozási nyelvben. Arra használjuk őket, hogy meghatározzuk a végrehajtás viselkedését valamilyen feltétel alapján. A Javascript nyelvben a feltételes blokkok a if, else if, else, valamint a switch utasítások használatával építhetők fel.

A switch utasítás könnyen olvashatóvá teszi a vezérlési folyamatot azáltal, hogy döntést hoz a kifejezés néhány lehetséges kimenetelével szemben. A megfelelő esettől függően egy vagy több kódblokk is végrehajtható. A switch vezérlés hasonló az else if utasításhoz. Azonban a switch szintaktikailag olvashatóbb. Ideális olyan forgatókönyvekhez is, amelyekben több lehetséges kimenetel van.

Ebben az útmutatóban a Javascript switch utasítására fogunk összpontosítani, és implementáljuk azt összetett vezérlési szerkezetek felépítéséhez. Megtanuljuk azt is, hogyan használjuk a break , case, és default utasításokat a switch blokkon belül a vezérlés menetének irányítására.

A Switch utasítás használata

A switch utasítás úgy működik, hogy összehasonlítja egy változó értékét a lehetséges kifejezésekkel. Ezután végrehajtja a kimenetelnek megfelelő kódblokkot. A switch  utasítás szintaxisa nem különbözik az if utasítástól. Röviden, a switch utasítás szintaxisa a következőképpen írható fel:

Alább látható egy példa a switch utasításra. Két esettel vagy két lehetséges kimenetellel rendelkezik, valamint egy alapértelmezett opcióval, amelyet a default kulcsszó határoz meg. Ez az alapértelmezett opció akkor hajtódik végre, amikor a végrehajtás befejeződik, vagy ha nem található egyező eset:

A fenti kód a következőképpen hajtódik végre:

  1. Először a kifejezés kiértékelése történik meg.

  2. Ezután a kifejezés eredményét összevetjük a case x esettel. Ha az érték megegyezik, a case x alatti kódblokk hajtódik végre.

  3. Ha a kifejezés nem egyezik meg a case x esettel, akkor a case y esettel történik az összevetés. Ha egyezés található, akkor a case y kód hajtódik végre.

  4. Végül, ha sem a case x eset, sem a case y eset nem egyezik, akkor a default kód hajtódik végre, és a vezérlés kilép a switch blokkból.

Működő példa

A switch utasítás megértéséhez nézzünk meg egy működő példát. Lekérjük az aktuális dátumhoz tartozó hét napjának értékét a getDay() metódusával a Javascript Date objektumából. Ez az érték egy szám, a vasárnaphoz, egészen 6-ig, ami a szombat. Kiértékeljük az értékek alapján, hogy a hét melyik napjáról van szó:

Ezután átadjuk ezt az értéket a switch utasításnak. A switch utasítás fentről lefelé haladva összeveti azt az esetekkel, hogy meghatározza, a hét melyik napjáról van szó. Ha megtalálta az esetet, a break parancs leállítja a switch blokkot, megakadályozva a további utasítások kiértékelését:

A getDate() metódus által visszaadott értéktől függően az érték egyenként kerül tesztelésre az esetekkel szemben, fentről lefelé haladva. A kimenet attól függően változik, hogy melyik napon futtatta a kódot. Az alapértelmezett (default) kódblokk azért van elhelyezve, hogy kezelni tudjuk azt a forgatókönyvet, ha egyik eset sem egyezik. Ebben a kódban azonban a default soha nem fog meghívódni, mivel a hét napjainak száma véges.

A break utasítás biztosítja, hogy miután az eset egyezett, ne keressen további egyezéseket, és a vezérlés kilépjen a switch utasításból. Ez hatékonyabbá és gyorsabbá teszi a programot.

Tartományok tesztelése a Switch-ben

Eddig nagyon egyszerű használati eseteket láttunk. Azonban előfordulhatnak olyan helyzetek, amikor egyetlen érték helyett egy értéktartományt kell tesztelni. Ezt úgy tehetjük meg, hogy a kifejezésünket true értékre állítjuk, és elvégzünk egy műveletet minden egyes case utasításon belül.

Szemléltessük ezt a használati esetet egy példa segítségével. Vegyünk egy számot, majd alakítsuk át osztályzattá az alábbi kategorizálás alapján:

  • A 90-es vagy annál magasabb osztályzat értéke A

  • A 80 és 89 közötti osztályzat értéke B

  • A 70 és 79 közötti osztályzat értéke C

  • A 60 és 69 közötti osztályzat értéke D

  • Az 59-es vagy annál alacsonyabb osztályzat értéke F

Ezeket az utasításokat switch utasításokként fogjuk megírni. Alább látható az ehhez tartozó kód:

A fenti kódpéldákkal ellentétben itt a zárójelben lévő kifejezést a következőre állítottuk be: true. Ezért amelyik case utasítás megegyezik a true értékkel, az fog lefutni. Csakúgy, mint az else if utasítás esetében, az első olyan utasítás fog lefutni, amely megegyezik a megadott értékkel. Itt a kimenet a következő lesz: B, annak ellenére, hogy még a C és a D is megegyezik a kifejezéssel.

Többszörös esetek

Ha egynél több esethez szeretné ugyanazt a kódblokkot használni, az is lehetséges. Ez hasonlít az vagy feltételhez az if utasításban. Ilyen esetekben egynél több esetet is megadhatunk minden egyes kódblokkhoz.

E koncepció szemléltetésére egy példát mutatunk be az év hónapjaival. Ezeket a hónapokat az év évszakaiba fogjuk csoportosítani. Először az új Date() metódust használjuk az aktuális hónapnak megfelelő szám megkeresésére, és ezt rendeljük hozzá a month változóhoz. A Date().getMonth() metódus egy számot ad vissza 0 és 11 között, ahol a 0 a január, a 11 pedig a december.

A következő specifikáció alapján fogunk kategorizálni:

  • Tél: január, február és március

  • Tavasz: április, május és június

  • Nyár: július, augusztus és szeptember

  • Ősz: október, november és december

Így fog kinézni a kód:

A fenti kód futtatásakor a hónaptól függően az évszak neve fog megjelenni a konzolon.

Összegzés

Ebben az útmutatóban bemutattuk, hogyan használható a switch utasítás a JavaScript-alkalmazásokban. Emellett alkalmaztuk a switch utasítást egy tartományra és több esetre is, a default kulcsszóval együtt. Ha szeretne többet megtudni a JavaScriptről, tekintse meg az alábbi útmutatókat:

Jó programozást!

author

Shreyas Patil

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.