Visit Mozilla.org

Référence de JavaScript 1.5 Core:Instructions:switch

Un article de MDC.


Sommaire

[modifier] Résumé

Évalue une expression, en comparant sa valeur à un différents labels de cas, et exécute les instructions associées au cas correspondant.

Instruction
Implémentation : JavaScript 1.2, NES 3.0
Version ECMA : ECMA-262, Édition 3

[modifier] Syntaxe

switch (expression) {
   case label1:
      instructions1
      [break;]
   case label2:
      instructions2
      [break;]
   ...
   case labelN:
      instructionsN
      [break;]
   default:
      instructions_def
      [break;]
}

[modifier] Paramètres

expression 
Une expression à comparer avec chaque label.
labelN 
Identifiant utilisé pour comparer avec expression.
instructionsN 
Instructions à exécuter si expression correspond au label associé.
instructions_def 
Instructions qui seront exécutées si expression ne correspond à aucun label.

[modifier] Description

Si une correspondance est trouvée, le programme exécute les instructions associées. Si plusieurs cas correspondent à la valeur spécifiée, seul le premier cas correspondant est sélectionné, même si les cas ne sont pas strictement égaux.

Le programme cherche d'abord une clause case avec un label correspondant à la valeur de l'expression et transfère alors le contrôle à cette clause, exécutant les instructions associées. Si aucun label ne correspond, le programme regarde si une clause default existe, et si c'est le cas, transfère le contrôle à cette clause, exécutant les instructions associées. Si aucune clause default n'est trouvée, le programme poursuit son exécution à l'instruction qui suit la fin du switch. Par convention, la clause default est la dernière clause, mais ce n'est pas obligatoire.

L'instruction break optionnelle, associée avec chaque label, permet de s'assurer que le programme sortira du switch une fois que l'instruction correspondante a été exécutée et que l'exécution se poursuivra à l'instruction qui suit le switch. Si break n'est pas précisé, l'exécution se poursuit à l'instruction suivante dans l'instruction switch.

[modifier] Exemples

[modifier] Exemple : utilisation de switch

Dans l'exemple qui suit, si expression est évaluée à "bananes", le programme trouvera le cas correspondant "bananes" et exécutera les instructions associées. Lorsqu'il rencontrebreak, le programme sort du switch et exécute l'instruction qui suit le switch. Si break n'était pas précisé, l'instruction pour le cas "cerises" aurait également été exécutée.

switch (expr) {
   case "oranges":
      document.write("Les oranges sont à 0,59 le kilo.<br>");
      break;
   case "pommes":
      document.write("Les pommes sont à 0,32 le kilo.<br>");
      break;
   case "bananes":
      document.write("Les bananes sont à 0,48 le kilo.<br>");
      break;
   case "cerises":
      document.write("Les cerises ont à 3,00 le kilo.<br>");
      break;
   case "mangues":
   case "papayes":
      document.write("Les mangues et les papayes sont à 2,79 le kilo.<br>");
      break;
   default:
      document.write("Désolé, nous n'avons plus de " + expr + ".<br>");
}
document.write("Désirez-vous autre chose ?<br>");