JavaScript : Switch

Switch permet de comparer une variable sur plusieurs valeurs à la fois.

Exemple :

Banane = 2
switch (Banane)
  {
  case 1 : document.write ("Un")
  case 2 : document.write ("Deux")

  case 3 : document.write ("Trois")

  }

Ici, Banane vaut 2, donc il va écrire "Deux".

Bizarrement, il va aussi écrire "Trois" pour des raisons qui m'échappent ! Un peu comme si, dès qu'il trouve la bonne réponse, il considère que toutes les réponses suivantes sont aussi correctes.

Afin d'éviter ce "bug" qui m'échappe, il suffit d'ajouter le mot-clé break à la fin de chaque condition :

Banane = 2
switch (Banane)
  {
  case 1 : document.write ("Un"); break
  case 2 : document.write ("Deux"); break

  case 3 : document.write ("Trois"); break

  }

Si plusieurs conditions sont vraies, "break" va obliger le programme à sortir du switch dès la première condition juste :

Banane=2
switch(Banane)
  {
  case 1 : document.write("Un"); break
  case 2 : document.write("Deux"); break
  case 2 : document.write("Deux aussi"); break
  case Banane>1 : document.write("Plus grand que 1"); break
  }

Ici, il va afficher "Deux" et rien d'autre.

On peut grouper, comme ceci :

Animal = "Autruche";
switch (Animal)
  {
  case "Vache":
  case "Girafe":
  case "Chien":
       document.write("Voici un mammifère"); break;
  case "Colibri":
  case "Autruche":
  default:
       document.write
("Voici un ovipare"); break;
  }

Ici, il va afficher "Voici un ovipare". Si on avait écrit "Girafe", il aurait écrit "Voici un mammifère" et si on avait écrit "Tralala" il aurait aussi écrit "Voici un ovipare", puisque la dernière option du 2ème et dernier groupe est "default"qui englobe tout le reste.