Instructions Conditionnelles

Tutoriaux, Sommaire JavaScript

1. Décisions
   
   Nous avons évoqué précédemment la nécessité de faire des choix, c'est à dire de prendre des décisions. Une des formes de choix est la structure :
    Si(une condition est remplie)
    Alors effectuer une opération

    La structure JavaScript est :
    if ( condition)  {
        opération à effectuer si la condition est vrai
     }
    Attention aux parenthèses {    } enclosant l'opération à effectuer
    Pour faciliter la lecture des programmes on décale les lignes, (indentation), encloses dans des instructions.

    Exemple avec une boite de dialogue, (prompt)
<SCRIPT>
//Définition et assignation des variables
var reponse
var message = "Bonjour Visiteur"
//Demande à l'utilisateur
reponse = prompt("Entrez un pseudo", "Visiteur")
//Test si le pseudo est "demon"
if ( reponse == "demon" ){
    message = "Vous êtes le responsable système"
}
//Réponse du système
alert(message)
</SCRIPT>
    Ce script reprend celui illustrant la boite prompt vu à la page précédente, nous y avons rajouté :
    La définition d'une variable "message" assignée à une valeur de défaut, "Bonjour Visiteur"
    Un test vérifiant si le pseudo choisi est "demon"

   Nous rappelons que dans reponse nous trouverons le pseudo entré par le visiteur ou null s'il a cliqué sur annuler.
    Attention : la comparaison (
reponse == "demon") utilise deux signes d'égalité à la suite, ==
    L'instruction enclose dans les parenthèses du if, n'est exécutée que si la réponse est exactement "demon".
    Testez, demon, Demon, démon
    Dans tous les cas autres que reponse == "demon" , la variable message restera à sa valeur d'origine,
"Bonjour Visiteur".
    Organigramme de ce programme


Code de la page:

     

    Exercice : Supprimez un des signes égal dans l'instruction if. Vous observerez
        1. Vous n'obtenez pas de message d'erreur
        2. L'if se comporte comme si la condition était toujours vrai
    Vérifiez si vous avez les deux signes d'égalité en cas de comportement bizarre d'un programme comportant un/des if.

2. Autres
       Il serait sympathique de saluer votre visiteur par son pseudo, du genre "Salut pseudo". Nous voyons dans l'organigramme précédent que la boucle Non de réponse au test de l'IF est vide, en fait cette réponse Non à l'IF correspond à tous les visiteurs choisissant un pseudo différend de "demon" ou appuyant sur annuler dans la boite prompt. Nous pourrions nous servir de cette boucle pour afficher le pseudo.
    On peut rajouter un autre élément au if, c'est le else, (autre).
    if ( condition)  {
        opération à effectuer si la condition est vrai
     }  else  {
        opération à effectuer si la condition est fausse
     }
    Exercice :
  
   modifier la forme suivante pour y inclure une clause else
      dans cette clause else charger dans message le texte suivant, Bonjour suivi du pseudo chargé dans reponse. message = "Bonjour " + reponse Voir la syntaxe.
      Faire un Organigramme de ce programme, Corrigé
       Corrigé du programme, (voir dans la forme ci-dessous)

Code de la page:

     

 

3. Traitement de annuler
       Si le visiteur appuit sur annuler dans la boite prompt, la variable reponse est mise à la valeur null. Ce n'est pas un contenu texte "null" bien que la boite alert le transforme en texte pour l'affichage. Ce qui donne "Bonjour null", ce qui n'est pas très gentil. Pour éviter celà, nous pouvons rajouter un test modifiant le message si reponse à la valeur null.
    La valeur null est vue comme fausse par une instruction if.On peut dans une instruction if tester directement si une valeur est vraie ou fausse, en écrivant par exemple pour la variable reponse.
if (reponse){
   opération à effectuer si reponse est vrai
}
    reponse est vrai si la variable a un contenu, c'est à dire si elle n'est ni "undefined" ni à la valeur null, dans le cas contraire elle est reconnue comme fausse.
    Pour tester si une variable à une valeur fausse on fait précéder cette variable du symbole de la négation, le point d'exclamation !
//lire si not reponse
if (!reponse){
   opération à effectuer si reponse est faux
}
    On pourrait bien sur faire suivre cette instruction d'un else qui s'activerait pour reponse vrai.
    Nous avons rajouté dans la forme ci-dessous le test suivant,
//Test si null
if ( !reponse){
    message = "Vous devez donner un pseudo"
}
    Exercice, vérifiez dans la forme ci-dessous que les trois cas de réponse du visiteur éditent le message approprié.

Code de la page:

     

    Nous avons supprimé l'assignation :
var message = "Bonjour Visiteur"
    En effet si vous regardez l'organigramme du programme précédent, vous voyez que quel que soit la valeur entrée par le visiteur, message a toujours un contenu, nous n'avons donc plus besoin de valeur par défaut.
    Exercice,
    Concevez un organigramme tel que, on puisse supprimer la boucle else du premier if, contenant (message = "Bonjour " + reponse).
    Si vous ne trouvez pas, Assigner à message une assignation par défaut, n'oubliez pas le pseudo! piste
   
Corrigé
    Ecrivez dans la forme ci-dessus le nouveau programme
    Corrigé

 


Sommaire
Précédent Suivant