Les ruptures de séquence

Pas toujours les mêmes
Un programme qui s'exécute du début vers la fin dans le sens de la lecture, c'est bien, mais c'est plutôt idiot quand on veut obtenir quelque chose de répétitif, et pas évident pour un traitement conditionnel, mais heureusement, javascript est assez bien pourvu de ce côté là, le seul problème est de choisir la bonne méthode à appliquer au cas à résoudre.

L'exécution conditionnelle
Sous ces termes grandiloquents se cache quelque chose de déjà vu et de pas compliqué (pour une fois), il s'agit de la condition SI, en anglais IF, le format complet de la commande est:

if (condition) {exécution si condition vraie} [else {exécution si fausse}]

  • La partie else{} est facultative.
  • On peut facilement inverser le sens du test pour se passer éventuellement du ELSE grâce à l'opérateur logique "!" (not, en français: non) comme ceci: if (!(condition)) {}
  • La condition peut être quelque chose de très simple, par exemple: x==5 ou une formule beaucoup plus sophistiquée, voire le retour d'une fonction, exemple: if ((testbouton(2)==true && a>=0) || (z==1);) {}
  • Quant à l'exécution elle peut contenir autant de lignes que vous voulez, ou comporter plusieurs commandes sur la même ligne physique, pour autant que vous n'oubliez pas de les séparer par ";", exemple: if (a==2) {z=6;w=9;a=0} ou encore:
    if (a==2)
    {
      z=6;
      w=9;
      a=0;
    }

    Les deux méthodes sont totalement équivalentes, choisissez de préférence la plus lisible pour vous.

Malgré la simplicité indigente de cette fonction je vais donner un exemple:

if (Math.random()>0.5)
{
  document.write("pile !");
}
else
{
  document.write("face !");
}

Note: la fonction Math.random() donne un nombre aléatoire compris entre 0 et 1, mais si c'est possible, je n'ai jamais dit qu'elle donnait un nombre ENTIER, et 0.34565 alors, c'est quoi d'après vous ?


L'exécution conditionnelle multiple
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.


Ne courrez pas
Ne vous jetez pas tout de suite sur un projet de programme démesuré, il vous manque encore une notion très importante en programmation, les boucles, nous allons voir ça à la page suivante, ici c'était juste la page récréation.

RetourInfo Suite

Dernière mise à jour de cette page: 04/09/2001, visiteurs: depuis le 6 avril 2002