Příkaz JavaScript switch
Příklad
Spusťte blok kódu na základě vstupu uživatele:
var text;
var fruits = document.getElementById("myInput").value;
switch(fruits) {
case "Banana":
text = "Banana is good!";
break;
case "Orange":
text = "I am not a fan of orange.";
break;
case "Apple":
text = "How you like them apples?";
break;
default:
text = "I have never heard of that fruit...";
}
Další příklady „Vyzkoušejte si to sami“ níže.
Definice a použití
Příkaz switch provede blok kódu v závislosti na různých případech.
Příkaz switch je součástí "Podmíněných" příkazů JavaScriptu, které se používají k provádění různých akcí na základě různých podmínek. Pomocí přepínače vyberte jeden z mnoha bloků kódu, který se má provést. Toto je perfektní řešení pro dlouhé, vnořené příkazy if/else .
Příkaz switch vyhodnotí výraz. Hodnota výrazu je poté porovnána s hodnotami každého případu ve struktuře. Pokud existuje shoda, provede se příslušný blok kódu.
Příkaz switch se často používá společně s break nebo výchozím klíčovým slovem (nebo obojím). Oba jsou volitelné:
Klíčové slovo break vypadne z bloku přepínače. Tím se zastaví provádění dalšího provádění kódu a/nebo testování případu uvnitř bloku. Pokud je break vynechán, provede se další blok kódu v příkazu switch.
Výchozí klíčové slovo určuje nějaký kód, který se má spustit, pokud nedojde k žádné shodě velkých a malých písmen . V přepínači může být pouze jedno výchozí klíčové slovo. Ačkoli je to volitelné, doporučujeme jej používat, protože se postará o neočekávané případy.
Syntax
switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block
}
Hodnoty parametrů
Parameter | Description |
---|---|
expression | Required. Specifies an expression to be evaluated. The expression is evaluated once. The value of the expression is compared with the values of each case labels in the structure. If there is a match, the associated block of code is executed |
Další příklady
Příklad
K výpočtu názvu dne v týdnu použijte číslo dnešního dne v týdnu (neděle=0, pondělí=1, úterý=2, ...):
var day;
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "Unknown Day";
}
Příklad
Pokud dnes není ani sobota, ani neděle, napište výchozí zprávu:
var text;
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
Příklad
Někdy budete chtít, aby různé případy používaly stejný kód nebo aby se propadly na společné výchozí nastavení.
Všimněte si, že v tomto příkladu případy sdílejí stejný blok kódu a že výchozí případ nemusí být posledním případem v bloku přepínače (pokud však výchozí NENÍ posledním případem v bloku přepínače, nezapomeňte jej ukončit s přestávkou).
var text;
switch (new Date().getDay()) {
case 1:
case 2:
case 3:
default:
text = "Looking forward to the Weekend";
break;
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
}
Příklad
Použití příkazu switch ke spuštění bloku kódu na základě vstupu uživatele z pole výzvy:
var text;
var favDrink = prompt("What's your favorite cocktail drink?");
switch(favDrink) {
case "Martini":
text = "Excellent choice! Martini is good for your soul.";
break;
case "Daiquiri":
text = "Daiquiri is my favorite too!";
break;
case "Cosmopolitan":
text = "Really? Are you sure the Cosmopolitan is your favorite?";
break;
default:
text = "I have never heard of that one..";
}
Související stránky
Výukový program JavaScript: Příkazy JavaScript If...Else
JavaScript výukový program: JavaScript Switch Statement
JavaScript Reference: JavaScript if/else Statement
JavaScript Reference: JavaScript break Statement
Podpora prohlížeče
switch
je funkce ECMAScript1 (ES1).
ES1 (JavaScript 1997) je plně podporován ve všech prohlížečích:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |