JavaScript - Boîtier de commutation

Vous pouvez utiliser plusieurs if...else…ifinstructions, comme dans le chapitre précédent, pour effectuer une branche multi-voies. Cependant, ce n'est pas toujours la meilleure solution, surtout lorsque toutes les branches dépendent de la valeur d'une seule variable.

À partir de JavaScript 1.2, vous pouvez utiliser un switch déclaration qui gère exactement cette situation, et il le fait plus efficacement que répété if...else if déclarations.

Organigramme

L'organigramme suivant explique les travaux d'une instruction switch-case.

Syntaxe

L'objectif d'un switchinstruction consiste à donner une expression à évaluer et plusieurs instructions différentes à exécuter en fonction de la valeur de l'expression. L'interprète vérifie chaquecasepar rapport à la valeur de l'expression jusqu'à ce qu'une correspondance soit trouvée. Si rien ne correspond, undefault condition sera utilisée.

switch (expression) {
   case condition 1: statement(s)
   break;
   
   case condition 2: statement(s)
   break;
   ...
   
   case condition n: statement(s)
   break;
   
   default: statement(s)
}

le breakles instructions indiquent la fin d'un cas particulier. S'ils étaient omis, l'interprète continuerait d'exécuter chaque instruction dans chacun des cas suivants.

Nous expliquerons break déclaration dans Loop Control chapitre.

Exemple

Essayez l'exemple suivant pour implémenter l'instruction switch-case.

<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               break;
            
               case 'B': document.write("Pretty good<br />");
               break;
            
               case 'C': document.write("Passed<br />");
               break;
            
               case 'D': document.write("Not so good<br />");
               break;
            
               case 'F': document.write("Failed<br />");
               break;
            
               default:  document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

Production

Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...

Les instructions break jouent un rôle majeur dans les instructions switch-case. Essayez le code suivant qui utilise l'instruction switch-case sans aucune instruction break.

<html>
   <body>      
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               case 'B': document.write("Pretty good<br />");
               case 'C': document.write("Passed<br />");
               case 'D': document.write("Not so good<br />");
               case 'F': document.write("Failed<br />");
               default: document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

Production

Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...