JavaScript Switch Statement


Indholdsfortegnelse

    Vis indholdsfortegnelse


switch-sætningen bruges til at udføre forskellige handlinger baseret på forskellige forhold.


JavaScript switch-erklæringen

Brug switch-sætningen til at vælge en af mange kodeblokke, der skal udføres.

Syntaks

switch(expression) {
  case x:
     // code block
        break;
  case y:
     // code block
     break;
  default:
      // code block
 }

Sådan fungerer det:

  • Skiftudtrykket evalueres én gang.

  • Værdien af udtrykket sammenlignes med værdierne for hvert enkelt tilfælde.

  • Hvis der er et match, udføres den tilhørende kodeblok.

  • Hvis der ikke er nogen match, udføres standardkodeblokken.

Eksempel

Metoden getDay() returnerer ugedagen som et tal mellem 0 og 6.

(søndag=0, mandag=1, tirsdag=2 ..)

Dette eksempel bruger ugedagsnummeret til at beregne ugedagsnavnet:

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";
}

Dagens resultat bliver:

Prøv det selv →

<!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>


Søgeordet break

Når JavaScript når en pause nøgleord, bryder den ud af kontaktblokken.

Dette vil stoppe udførelsen inde i kontaktblokken.

Det er ikke nødvendigt at bryde det sidste tilfælde i en omskifterblok. Blokken knækker (slutter) der alligevel.

Bemærk: Hvis du udelader break-sætningen, vil den næste sag blive udført, selvom evalueringen stemmer ikke overens med sagen.


standard søgeordet

default søgeordet angiver den kode, der skal køres, hvis der ikke er nogen case match:

Eksempel

Metoden getDay() returnerer ugedagen som et tal mellem 0 og 6.

Hvis i dag hverken er lørdag (6) eller søndag (0), skriv en standardmeddelelse:

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";
}

Resultatet af teksten bliver:

Prøv det selv →

<!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>

standard sagen behøver ikke at være den sidste sag i en switch blok:

Eksempel

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";
  }

Prøv det selv →

<!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>

Hvis default ikke er det sidste tilfælde i switch-blokken, skal du huske at afslutte standardcasen med en pause.


Almindelige kodeblokke

Nogle gange vil du have anderledes skifte tilfælde for at bruge det samme kode.

I dette eksempel deler tilfælde 4 og 5 den samme kodeblok, og 0 og 6 deler en anden kodeblok:

Eksempel

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";
  }

Prøv det selv →

<!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>

Skift detaljer

Hvis flere sager matcher en sagsværdi, vælges den første sag.

Hvis der ikke findes nogen tilsvarende tilfælde, fortsætter programmet til standard-etiketten.

Hvis der ikke findes nogen standardetikette, fortsætter programmet til sætningen/sætningerne efter skiftet.


Streng sammenligning

Skift sager bruger streng sammenligning (===).

Værdierne skal være af samme type for at matche.

En streng sammenligning kan kun være sand, hvis operanderne er af samme type.

I dette eksempel vil der ikke være noget match for x:

Eksempel

 let x = "0";
switch (x) {
  case 0:
    text = "Off";
      break;
  case 1:
    text = "On";
    break;
    default:
    
  text = "No value found";
} 

Prøv det selv →

<!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>