Premiers pas en JavaScript
16.2 IF... ELSE IF...
cuy copyleft
  See You Why?  

 


les IF imbriqués.(16.1) | | l'opérateur ternaire (16.3)

Contenu

 

 

I. Les conditions IF imbriquées

voir <<< séquence précédente

 

 

II. La condition IF... ELSE IF...

Le lecteur aura remarqué la lourdeur et l'obligation de suivre scrupuleusement l'indentation pour traiter des conditions imbriquées. JS a pensé à eux, il a mis au point la structure qui existe dans de nombreux autres langages informatiques, à une nuance près... JS exige l'écriture du ELSEIF en deux mots... ELSE IF... suivi d'une nouvelle condition. On pourrait traduire par "sinon si..." ; de plus, il n'est pas rare de trouver une accolade entre le ELSE et le IF...

Finies les grandes indentations, finis les oublis de crochets multiples, mais exigence supplémentaire d'être précis et complet.

À titre d'exemple, nous prendrons cet exemple :

var age = prompt("Quel est votre age ? ");
if (age < 0){
   alert("Réponse impossible.");
}
else if (age < 5) {
   alert("Vous me paraissez trop jeune que pour pouvoir comprendre la question et y répondre.");
}
else if (age < 18) {
   alert("Je parie que tu aspires à ta majorité");
}
else if (age < 65) {
   alert("En pleine force de l'âge");
}
else {
   alert("Pensionné, tu peux profiter à fond de ces années");
}

Mais hélas grosses difficultés pour incorporer des actions (ou instructions) si l'une des conditions intermédiaires est fausse. En effet, les instructions qui suivent le dernier else (isolé) ne seront exécutées que si aucune des conditions précédentes n'est rencontrée. Ce dernier 'else' se traduirait donc par 'dans tous les autres cas'.

Avec if - else if vous pouvez définir plusieurs conditions qui seront vérifiées l'une après l'autre jusqu'à ce que le script trouve la bonne. Alors le bloc d'instructions correspondant à la bonne condition sera exécuté, et après l’exécution de ce bloc le script ignore les autres else if's ainsi que le dernier else.

Dans notre exemple, le cas du ELSE ne sera exécuté que si 'age' est supérieur ou égal à 65, même si l'âge vaut 500 ou si l'âge vaut "vingt-cinq ans"...

Exemple

<html>
<head><title>IF imbriqués</title></head>
<body>
<script type="text/javascript">

var age = prompt("Quel est votre age ? ");
if (age < 0){
   alert("Réponse impossible.");
}
else if (age < 5) {
   alert("Vous me paraissez trop jeune que pour pouvoir comprendre la question et y répondre.");
}
else if (age < 18) {
   alert("Je parie que tu aspires à ta majorité");
}
else if (age < 65) {
   alert("En pleine force de l'âge");
}
else {
   alert("Pensionné, tu peux profiter à fond de ces années");
}
</script>
</body>
</html>


 

Comme autre exemple, nous donnerons un message qui s'affiche selon l'heure de la journée, un peu comme dans la page d'accueil du site CUY (See you why?"), mais ne considérez pas ce qui suit comme exemplaire, c'est un vilain style de programmation :

<script type="text/javascript">
   var mon_heure = new Date().getHours();
   var msg = "Bonne nuit !";
   if (mon_heure> 4) {
      if (mon_heure< 12) {
         msg = "Bonne matinée !";
      } else {
         if (mon_heure< 18) {
            msg = "Bon après-midi !";
         } else {
            if (mon_heure< 22) {
               msg = "Bonne soirée !";
            }
         }
      }
   }
   alert(msg);
</script>
 

L'opérateur ternaire permet d'écrire l'équivalent du IF... ELSE IF... en une seule ligne...

 

III. L'instruction (condition)?(si_vrai):(sifaux)... ou opérateur ternaire

voir suite >>>

 

IV. La fonction aléatoire

voir suite >>>

 

VIII. Exercices relatifs aux conditions IF imbriquées et fonction aléatoire

voir suite >>>

 

IX. Test relatif aux conditions IF imbriquées et fonction aléatoire

voir suite >>>

 

 


les IF imbriqués.(16.1) | | l'opérateur ternaire (16.3)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_162_if_else_if.html

partager sur FaceBook...           consulter sur FaceBook...

 

copyleft
Des liens ne fonctionnent plus ?
Avez-vous des suggestions ?
des commentaires, des corrections, un encouragement... ?
Pour info : Non, il n'y a pas de version papier ou DOC, PDF, etc. de ces notes.


Envoyez-moi un E-Mail (cuy(point)w(at)skynet(point)be)

Attention (at) signifie @ et (point) signifie .

Accueil CUY = See you why?

Compteur gratuitEasyCounter     BelStat Monitored by BelStat - Your Site Counts
La 1 000 000e page a été visitée le 21 mai 2010.
La 2 000 000e page a été visitée ce 18 mars 2012, vers midi.
La 3 000 000e page a été visitée ce 7 janvier 2014 entre 18 h et 18 h 45,
La 4 000 000e page a été visitée ce 5 juin 2015 entre 15 h 49 et 15 h 52,
La 5 000 000e page a été visitée ce 29 aout 2017 après 23 h 30,
Et la 6 000 000e page visitée, trop tôt pour y penser ?
 
et, d'après BelStat, CUY est visité surtout en semaine, peu le weekend...
moins et irrégulièrement pendant les vacances :

visites sur 3 mois, de la mi octobre 2013 à la mi janvier 2014.
 
La 3 333 333e page visitée a eu lieu ce mardi 10 juin 2014, en début d'après midi...
La 3 666 666e page visitée a eu lieu ce dimanche 28 decembre 2014, vers 16 h...
Un tiers de million de pages visitées en 154 jours cela fait une moyenne de 2165 pages visitées par jour...
Deux tiers de million de pages visitées en 355 jours soit une moyenne de 1878 pages visitées par jour...
et seulement 1195 pages visitées quotidiennement pendant les vacances estivales
de la mi juin à la mi septembre 2014

Vous voulez lire quelques messages reçus ?
quelques encouragements ?
Cliquez ici


Fin septembre 2009, installation de ce compteur
qui ne compte chaque nouvel ordinateur visiteur qu'une seule fois
free counter
 
m-à-j du 22/11/2021 :

Depuis cette fin septembre 2009, parmi les 210 pays (sur 274 drapeaux connus) qui nous ont visité,
voici les 100 pays qui nous visitent le plus, 
Nos petits visiteurs, classés par date de visite, où un seul ordi nous a visité, sont :
199. Turkmenistan (TM May 10, 2017) ; 200. Lesotho (LS March 1, 2017) ;
201. Turks and Caicos Island (TC January 18, 2016
202. Cook Islands (CK September 19, 2015)  203. Faroe Islands (FO January 27, 2015
204. Virgin Islands American (VI November 12, 2014) ;
205. Belize (BZ September 29, 2014) ;206. Eswatini - Swaziland (SZ July 21, 2014) ;
207. Grenada (GD April 3, 2014) ; 208. Timor-Leste (TI March 29, 2014) ;
209. American Samoa (AS December 26, 2012) ; 210. Guyana (GY November 5, 2010).