JavaScript : les conditionnelles imbriquées I (ch. 2 ex. 2)

 Objectifs 

  1. Ce chapitre va te permettre d'approfondir ta connaissance des conditionnelles et de leur syntaxe;
  2. Il va te faire découvrir les structures conditionnelles imbriquées et leur mise en œuvre.

 Les conditionnelles imbriquées 

Nous avons vu au chapitre précédent l'utilisation d'une structure conditionnelle simple, c'est-à-dire permettant de faire une choix entre deux possibilités : pile ou face.

Mais comment faire lorsque plus de deux possibilités se présentent ? Comment déterminer quelles actions à mener en fonction des tests ?

 Ton défi, ta tâche 

Le robot conducteur

Réalise ton code pour que le robot parte du bon côté.

Le robot est capable de conduire son véhicule et de réagir aux informations routières telles que les déviations.

Le robot conducteur doit normalement aller tout droit, mais si, au carrefour, une déviation à gauche ou une déviation à droite se présente, il devra tourner à gauche ou à droite.

 Les structures de contrôle conditionnelles imbriquées 

Nous avons vu, dans les structures conditionnelles simples, que le test pouvait donner un résultat true ou false, soit deux possibilités. Or, dans le cas qui nous occupe, nous devons décider entre trois directions : à gauche, à droite ou tout droit.

Commençons par traiter le cas d'une déviation à gauche :

  • si (le résultat du test « déviation à gauche » est true)
    • tourne à gauche
  • sinon
    • il reste une ambiguïté : faut-il aller à droite ou tout droit ?

Nous voyons qu'il reste une ambiguïté dans le « sinon » : il y a encore deux directions à départager, ce qui va nécessiter un nouveau « si ».

Nous obtiendrons donc les deux structures conditionnelles imbriquées de la façon suivante :

  • si (le résultat du test « déviation à gauche » est true)
    • tourne à gauche
  • sinon si (le résultat du test « déviation à droite » est true)
      • tourne à droite
    • sinon
      • va tout droit

Avec cette « cascade de si », nous avons pu, grâce à 2 « si » imbriqués, guider le robot par rapport à 3 directons possibles.

 Et en JavaScript, ça donne quoi ? 

En JavaScript, la syntaxe sera la suivante :

  • if (test 1)
    • action à faire si le test 1 donne le résultat true;
  • else if (test 2)
      • action à faire si le test 2 donne le résultat true;
    • else
      • action à faire si (le test 1 et) le test 2 donne le résultat false;

Sois bien attentif au fait que, dans le « sinon du sinon », on se trouve à un « endroit » où ni le test 1, ni le test 2 n'ont donné un résultat true. L'avantage des « cascades de si » est d'exclure à chaque niveau tous les résultats true des tests précédents. Cette notion est très importante à intégrer.

Il est à remarquer que l'indentation (la mise en retrait) des instructions contenues dans les conditionnelles n'a aucune importance au niveau de l'exécution du code, mais c'est une bonne pratique à acquérir pour faciliter la lecture des scripts.

 Les fonctions disponibles 

Les fonctions disponibles dans l'exercice qui suit sont les suivantes :

  1. La fonction d'action va ('sens'); où 'sens' = 'gauche', 'droite' ou 'toutDroit';
  2. La fonction de test deviationGauche (); qui renverra true ou false;
  3. La fonction de test deviationDroite (); qui renverra true ou false.

Bon travail, mets bien en pratique tout ce que tu viens de lire ci-dessus.

Retour