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.