Premiers pas en JavaScript
16.1 IF imbriqués
et fonction aléatoire
cuy copyleft
  See You Why?  

 


test sur la condition IF... ELSE...(15.9) | | la condition IF... ELSE IF... (16.2)

Contenu

 

 

I. Les conditions IF imbriquées

Nombreux sont les cas de programmation où, suite à une réponse donnée, on doive faire appel à un nouveau traitement soumis à condition.

Ainsi, pour le calcul des allocations familiales du travailleur salarié en Belgique, la première question est de savoir si l'on a des enfants à charge, puis savoir combien, puis déterminer à quel rang appartient chacun des enfants (il y a 3 rangs), puis enfin de déterminer à quelle catégorie d'age chacun des enfants appartient... à la lecture d'un extrait du règlement, le lecteur comprendra facilement qu'il y a plusieurs questions à se poser, mais que beaucoup de cas ne sont pas à envisager dans les cas classiques :
"Depuis le 1-1-1997, le supplément d'âge est bloqué pour l'aîné des enfants en cas d'allocations familiales ordinaires.
Ceci a comme conséquence que l'aîné des enfants qui atteint ses 6, 12 ou 18 ans ne touchera plus de supplément d'âge majoré.
Pour l'aîné des enfants né entre le 1-1-1991 et le 31-12-1996, une autre réglementation est d'application. Cet enfant recevra à ses 6, 12 et 18 ans un supplément d'âge diminué de moitié.
Si l'enfant, né entre le 1-1-1991 et le 31-12-1996, obtient un 1er rang parce que l'aîné des enfants n'a plus droit aux allocations familiales ou qu'il quitte le ménage, il continuera à percevoir le supplément d'âge complet qu'il avait au moment du changement de rang.
"

Résoudre le calcul des allocations à l'aide d'un simple IF... ELSE... nous paraît difficile ici.

Autre situation : lors d'un test, ou lors d'un cours, le message ne sera pas le même selon que la réponse est incorrecte, imprécise ou correcte... et le message d'encouragement de l'enseignant ne doit pas être le même en cas de réponse correcte au premier essai ou au cinquième essai de réponse...

À quelqu'un qui n'aime pas l'informatique, il est inutile de demander s'il aime le javascript et encore moins s'il veut poursuivre son apprentissage en JS.

Javascript permet ces imbrications de conditions. La structure générale est :

if(condition1) {
    if(condition2) {
        if(condition3) {
            //actions si les trois conditions 1, 2 et 3 sont vérifiées
        }
        //actions si les deux conditions 1 et 2 sont vérifiées, peu importe la condition 3
    }
    //actions si la condition 1 est vérifiée, peu importe les conditions 2 et 3
}
 

L'usage du ELSE permet d'envisager l'hypothèse contraire...

A. syntaxe et indentation

Nous reprendrons l'exemple ci-dessus :

var informatique = confirm("Aimes-tu l'informatique en général ? ");

Inutile de pousser le bouchon plus loin si votre lecteur répond "Non", un simple message de tristesse "Quel dommage !"... mais s'il répond "Oui", il pourrait être intéressant de savoir s'il aime la programmation car beaucoup d'utilisateurs des ordis aiment l'outil pour des usages autres que la programmation (messagerie, visionnement de photos ou vidéos ou autres)... d'où...

var informatique = confirm("Aimes-tu l'informatique en général ? ");
if (informatique== true){
    var programmation = confirm("Et plus particulièrement la programmation ?");
} else {
   alert("Quel dommage !");
}

Et ici, deux cas possibles votre lecteur répondra "Oui" ou "Non", on peut aimer la programmation sans aimer le JavaScript, et selon les cas, les réactions doivent être différentes :

var informatique = confirm("Aimes-tu l'informatique en général ? ");
if (informatique == true){
    var programmation = confirm("Et plus particulièrement la programmation ?");
    if (programmation == true) {
        var jascri = confirm("La programmation en JS aussi, je suppose ?");
    } else {
        alert("Il n'y a pas que FaceBook sur un ordinateur !");
    }

} else {
   alert("Quel dommage !");
}

Là encore, ceux qui aiment le JS ne sont pas obligés de lire notre tutoriel et donc des réactions différentes selon les réponses données, d'où, par exemple :

var informatique = confirm("Aimes-tu l'informatique en général ? ");
if (informatique== true){
   var programmation = confirm("Et plus particulièrement la programmation ?");
   if (programmation == true) {
      var jascri = confirm("La programmation en JS aussi, je suppose ?");
         if (jascri == true) {
            var poursuite = confirm("Tu restes donc avec nous pour la suite du tutoriel ?");
         } else {
            alert("Dommage, JS te permettrait d'animer tes pages Web.");
         }

   } else {
      alert("Il n'y a pas que FaceBook sur un ordinateur !");
   }

} else {
   alert("Quel dommage !");
}

Et finalement, selon la réponse donnée à cette dernière question :

var informatique = confirm("Aimes-tu l'informatique en général ? ");
if (informatique== true){
   var programmation = confirm("Et plus particulièrement la programmation ?");
   if (programmation == true) {
      var jascri = confirm("La programmation en JS aussi, je suppose ?");
         if (jascri == true) {
            var poursuite = confirm("Tu restes donc avec nous pour la suite du tutoriel ?");
            if (poursuite == true) {
               alert("J'en suis heureux, nous continuerons donc notre travail.");
            } else {
               alert("Bon vent, nos chemins se quittent ici.");
            }

         } else {
            alert("Dommage, JS te permettrait d'animer tes pages Web.");
         }

   } else {
      alert("Il n'y a pas que FaceBook sur un ordinateur !");
   }
} else {
   alert("Quel dommage !");
}

Notre exemple ne comptait que des variables booléennes à vérifier, mais la syntaxe et la structure restent identiques pour les variables d'un autre type. Vous voulez le tester ?

Exemple

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

var informatique = confirm("Aimes-tu l'informatique en général ? ");
if (informatique== true){
   var programmation = confirm("Et plus particulièrement la programmation ?");
   if (programmation == true) {
      var jascri = confirm("La programmation en JS aussi, je suppose ?");
         if (jascri == true) {
            var poursuite = confirm("Tu restes donc avec nous pour la suite du tutoriel ?");
            if (poursuite == true) {
               alert("J'en suis heureux, nous continuerons donc notre travail.");
            } else {
               alert("Bon vent, nos chemins se quittent ici.");
            }

         } else {
            alert("Dommage, JS te permettrait d'animer tes pages Web.");
         }

   } else {
      alert("Il n'y a pas que FaceBook sur un ordinateur !");
   }
} else {
   alert("Quel dommage !");
}
 
</script>
</body>
</html>


Le lecteur comprendra que lorsqu'il travaille avec des IF imbriqués, il a intérêt à respecter l'indentation de son code pour pouvoir s'y retrouver plus facilement, même si l'interpréteur n'a pas besoin de ces indentations.

 

B. une condition double par conditions IF imbriquées

Si vous demandez à quelqu'un de deviner votre age, vous pouvez l'encourager s'il est dans la bonne dizaine, mais la condition est alors double... si vous avez 53 ans, il faut vérifier si vous avez bien 50 ans ou plus, puis vérifier que vous n'avez pas atteint la soixantaine. Vous devrez donc écrire :

if(age >= 50) {
    if(age < 60) {
        document.write("En effet, je suis dans la cinquantaine...");
    } else {
        document.write("Et non, je n'ai pas encore atteint la soixantaine... ai-je l'air si vieux ?");
    }
} else {
    document.write("C'est gentil de me rajeunir, mais j'ai plus de 50 ans");
}
 

JS n'a pas de condition "est compris entre..." ; dans le chapitre suivant, nous verrons que JS permet l'usage d'opérateurs ET, OU ou NOT qui nous permettront d'y arriver.

 

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

voir suite >>>

 

 

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 >>>

 

 


test sur la condition IF... ELSE...(15.9) | | la condition IF... ELSE IF... (16.2)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_160_if_imbriques.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).