Příkaz switch
se používá k provádění různých akcí na základě různých podmínek.
přepínač
JavaScriptuPomocí příkazu switch
vyberte jeden z mnoha bloků kódu, které se mají spustit.
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
Funguje to takto:
Výraz přepínače je vyhodnocen jednou.
Hodnota výrazu je porovnána s hodnotami každého případu.
Pokud existuje shoda, provede se příslušný blok kódu.
Pokud není shoda, provede se výchozí blok kódu.
Metoda getDay()
vrací den v týdnu jako číslo mezi 0 a 6.
(Neděle=0, pondělí=1, úterý=2 ..)
Tento příklad používá číslo dne v týdnu k výpočtu názvu dne v týdnu:
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";
}
Výsledkem dne bude:
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let 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";
}
document.getElementById("demo").innerHTML = "Today is " + day;
</script>
</body>
</html>
break
Když JavaScript dosáhne přerušení
klíčové slovo, vypadne z bloku přepínače.
Tím se zastaví provádění uvnitř bloku přepínačů.
Není nutné rozbíjet poslední pouzdro ve spínacím bloku. Blok se tam stejně zlomí (končí).
Poznámka: Pokud vynecháte příkaz break, bude proveden další případ, i když hodnocení neodpovídá případu.
výchozí
klíčové slovoKlíčové slovo výchozí
určuje kód, který se má spustit, pokud neexistuje případová shoda:
Metoda getDay()
vrací den v týdnu jako číslo mezi 0 a 6.
Pokud dnes není ani sobota (6) ani neděle (0), napište výchozí zprávu:
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";
}
Výsledkem textu bude:
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let 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";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
výchozí
případ nemusí být poslední případ v přepínači blok:
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let text;
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Pokud default
není poslední případ v bloku přepínačů, nezapomeňte ukončit výchozí případ přerušením.
Někdy budete chtít jiné přepněte případy, abyste použili totéž kód.
V tomto příkladu sdílejí 4 a 5 stejný blok kódu a 0 a 6 sdílejí další blok kódu:
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let text;
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Pokud se hodnotě velikosti písmen shoduje více případů, vybere se první případ.
Pokud nejsou nalezeny žádné odpovídající případy, program pokračuje k označení výchozí.
Pokud není nalezen žádný výchozí štítek, program pokračuje k příkazu (příkazům) po přepnutí.
Případy přepnutí používají přísné srovnání (===).
Aby se hodnoty shodovaly, musí být stejného typu.
Přísné srovnání může být pravdivé pouze tehdy, jsou-li operandy stejného typu.
V tomto příkladu nebude žádná shoda pro x:
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>