J'adore les titres pompeux qui font peur, en réalité ça ne vas pas être beaucoup plus douloureux que IF, qui est très bien pour jouer à pile ou face, mais plus ennuyeux à utiliser pour prendre plusieurs décisions, pour ça, mieux vaut utiliser SWITCH qui est beaucoup plus adapté à la situation et dont la syntaxe est la suivante:
switch (calcul de "case")
{
case étiquette :
programme;
break;
.
.
.
case étiquette :
programme;
break;
default :
programme;
}
- calcul de "case" ou simplement la variable contenant le texte à comparer.
- étiquette va servir à la décision, ça ne doit pas être un mot du langage javascript, une variable ou une fonction, et il faut utiliser ":" à la fin de cette étiquette, l'exemple ci-dessous est plus parlant que 10 lignes d'explications en plus.
- programme exécuté si la condition est vraie.
- break; indique la fin de la fonction switch et continue l'exécution plus loin.
- Il est bien sur possible de mettre autant de paquets case/programme/break que l'on souhaite.
- default : sert si aucun cas n'est vrai, si l'on ne souhaite pas exécuter quelque chose par défaut, il suffit de ne pas l'indiquer, ce paramètre étant facultatif.
- J'ai inséré des lignes vides juste pour aérer le texte et rendre la structure plus évidente, elles ne sont bien sûr pas nécessaire.
Et maintenant un exemple (qui a dit ouf ?)
switch (donnefruit())
{
case "orange" :
document.write("Les oranges coûtent 10 Frs le kilo");
break;
case "poire" :
document.write("Les poires sont en action à "); document.write(action(poire));
break;
case "pomme" :
document.write("Ma pomme va bien merci");
break;
default :
document.write("Désolé, l\'article demandé n\'est pas en stock");
}
Si vous voulez travailler avec des nombres, il suffit d'utiliser la méthode toString() entre les parenthèses de switch () {} qui convertira le nombre en chaîne de caractères et vous utiliserez aussi des guillemets pour l'étiquette, si la variable contenant le nombre du test s'appelle x, alors vous écrirez quelque chose comme:
switch (x.toString())
{
case "4" :
y=5;
break;
case "10" :
y=0;
break;
}.
Ce n'est pas plus difficile que ça.
|