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


JavaScript 1 - Introduction
JavaScript 2 - Commentaires et instructions
JavaScript 3 - Variables
JavaScript 4 - Types de variables
JavaScript 5 - Variables et chaines
JavaScript 6 - Les fonctions
JavaScript 7 - Les fonctions à paramètre unique
JavaScript 8 - Les fonctions à paramètres multiples
JavaScript 9 - L'instruction RETURN dans une fonction
JavaScript 10 - Appel d'une fonction dans une autre fonction
JavaScript 11 - Les variables locales ou globales
JavaScript 12 - Quelques opérateurs mathématiques
JavaScript 13 - ???
JavaScript 14 - L'instruction IF, pour les conditions
JavaScript 15 - L'instruction IF... ELSE..., pour les conditions à deux sorties
JavaScript 16 - Les IF imbriqués et fonction aléatoire
16.1 JS : Les IF imbriqués
16.2 JS : Le IF... ELSE IF...
16.3 JS : La structure (condition)?(resultat_vrai):(resultat_faux)...
16.4 JS : La fonction aléatoire
16.8 JS : Exercices sur les conditions imbriquées
16.9 JS : un test sur les conditions imbriquées
JavaScript 17 - Les conditions complexes
JavaScript 18 - L'instruction SWITCH, en cas de choix multiples
JavaScript 19 - La boucle FOR
JavaScript 20 - La boucle WHILE
JavaScript 21 - Les événements dans la programmation
JavaScript 22 - Quelques événements : onMouseOver onLoad etc.
JavaScript 23 - Les objets
JavaScript 24 - Créer ses propres objets
JavaScript 25 - Appliquer des méthodes à ses objets
JavaScript 26 - Les tableaux
JavaScript 27 - Différentes façons de créer des tableaux
JavaScript 28 - Propriétés et méthodes applicables aux tableaux
JavaScript 29 - Les méthodes applicables aux tableaux
JavaScript 30 - Méthodes de tris pour tableaux SORT, REVERSE et PUSH
JavaScript 31 - Ajouter des éléments à un tableau en utilisant une boucle
JavaScript 32 - Tecnique pour imprimer les éléments d'un tableau
JavaScript 33 - Lecture de bases de données
JavaScript 34 - Les objets mathématiques
JavaScript 35 - Les objets relatifs aux dates
JavaScript 36 - Les formulaires JS sont des objets
JavaScript 37 - Accès aux éléments d'un formulaire
JavaScript 38 - Validation des entrées d un formulaire
JavaScript 39 - Graphisme et JavaScript

JavaScript 50 - Calculateur d'emprunt
JavaScript 51 - Calendrier perpétuel et options diverses
JavaScript 99 - Documentation


 
 

 
Avec un peu de JavaScript,
n'oubliez pas de rendre vos pages
plus dynamiques et plus interactives.
 

 
 

 
Notre volonté est de rendre cette formation de JavaScript,
disponible le plus rapidement possible.
Le lecteur excusera l'imperfection de ce travail en cours de construction
et pourrait nous informer des défauts rencontrés.

  MERCI
 

 

 

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)