Příkaz JavaScript Switch


Obsah

    Zobrazit obsah


Příkaz switch se používá k provádění různých akcí na základě různých podmínek.


Příkaz přepínač JavaScriptu

Pomocí příkazu switch vyberte jeden z mnoha bloků kódu, které se mají spustit.

Syntax

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.

Příklad

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>


Klíčové slovo 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é slovo

Klíčové slovo výchozí určuje kód, který se má spustit, pokud neexistuje případová shoda:

Příklad

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:

Příklad

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.


Společné bloky kódu

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:

Příklad

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>

Podrobnosti o přepínání

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řísné srovnání

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:

Příklad

 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>