Vous pouvez me contacter via Facebook (questions, critiques constructives) : page facebook relative à mon site
var vage = prompt('tapez un votre âge sous forme d\'un entier') ; vage = parseInt(vage) ; // conversion en entier if(vage >= 60) {alert(vage + " ans donc vous êtes senior") ; } if(vage < 60) {alert(vage + " ans donc vous êtes encore jeune"); }Testez ce script !
Il y a deux conditions.
Une condition est entre parenthèse après le mot réservé if.
Une condition est une expression logique qui retourne une valeur logique (un booleen : true ou false).
Si la première condition retourne true alors il y a affichage du message : "vous êtes sénior".
Si la deuxième condition retourne true alors il y a affichage du message : "vous êtes encore jeune".
Ici les accolades sont facultatives puisqu'il n'y a qu'une instruction en cas de test vérifié.
Syntaxes :
if (condition) { bloc d'instructions } OU if (condition) instruction unique ;
Dans chacune des trois conditions l'expression logique est basée sur un opérateur de comparaison.
Nous avons utilisé : >= (supérieur ou égal) et < (inférieur à ) mais il existe aussi :
var vmoyenne = prompt('tapez la moyenne à l\'examen') ; vmoyenne = parseInt(vmoyenne) ; // conversion en entier if(vmoyenne >= 12) alert ("Moyenne supérieure ou égale à 12 donc vous êtes admis"); if(vmoyenne >= 10 && vmoyenne < 12) alert("oral de rattrapage !"); if(vmoyenne < 10) alert("refusé !");
Remarquez que la chaîne qui est l'argument de la fonction prompt contient une apostrophe . Donc il faut la délimiter la chaîne soit par des doubles quotes (") soit par des simples quotes (') mais à condition d'échapper alors l'apostrophe (\')
Examinons la deuxième condition. Traduisons l'expression de condition : "si vmoyenne supérieure ou égale à 10 et inférieure à 12" . Nous avons utilisé un opérateur logique dans l'expression.
Reprenons le thème de l'âge. Nous aurions pu écrire plus simplement :
... if (vage >= 60) { alert(vage + ' ans donc vous êtes senior') ; } else { alert(vage + ' ans donc vous êtes encore jeune) ; } ...
L'instruction après le else est exécutée si la condition retourne FALSE.
Que ce soit dans le si ou dans le sinon les accolades sont ici facultatives puisqu'il n'y a à chaque fois qu'une instruction.
Elles deviennent obligatoires en cas de bloc d'instructions.
Reprenons le thème de l'âge. Le script peut s'écrire de la façon suivante :
var vage = prompt('tapez un votre âge sous forme d\'un entier') ; vage = parseInt(vage) ; // conversion en entier var vstatut = vage >=60 ? "senior" :"encore jeune" ; alert (vage + " " + vstatut);
Observons la troisième instruction. Elle est basée sur l'opérateur ternaire.
Si le test est VRAI la variable vstatut reçoit "senior" sinon elle récupère "encore jeune".
Syntaxe : test ? code si vrai : code si faux
Testez ce script !
Thème : affichage du nom du département à partir de son code minéralogique.
On limite à la nouvelle région "Hauts de France".
Le script :
var vcodepostal = prompt('tapez votre code postal : 59 ou 60 ou 62 ou 80 ou 02') ; vcodepostal = parseInt(vcodepostal) ; // conversion en entier if(vcodepostal == 2) alert ("Vous résidez dans l'Aisne"); else if ( vcodepostal == 59) alert("Vous résidez dans le Nord") ; else if ( vcodepostal == 60) alert("Vous résidez dans l'Oise") ; else if (vcodepostal == 62) alert("Vous résidez dans le Pas de calais") ; else if (vcodepostal == 80) alert("Vous résidez dans la Somme") ; else alert("erreur de saisie");Testez ce script !
Mais comment fonctionne cette structure ?
Si la première condition retourne false alors il y a examen du deuxième test. Si le deuxième test retourne false alors examen
du troisième test et ainsi de suite ...
Reprenons le thème précédent (affichage du nom du département en fonction du code minéralogique). Il y a une autre solution avec la structure switch (cas de)
var vcodepostal = prompt('tapez le code du département : 02 ou 59 ou 60 ou 62 ou 80') ; vcodepostal = parseInt(vcodepostal) ; // conversion en entier switch(vcodepostal) { case 2 : alert('Aisne'); break ; case 59 : alert('Nord'); break ; case 60 : alert('Oise'); break ; case 62 : alert('Pas de calais'); break ; case 80 : alert('Somme'); break ; default : alert('erreur de saisie') ; } // fin switch
Reconnaissez que c'est beaucoup plus clair ...
Si vcodepostal est égal à 2 alors affichage de "Aisne" puis sortie du "switch" (grâce à l'instruction break) sinon examen du case suivant.
L'instruction associée à default est exécutée si aucun des cas n'est vérifié.
Attention la structure switch souffre cependant d'un gros inconvénient ...
L'opérateur de comparaison (implicite d'ailleurs) est forcément égal. Impossible d'écrire, par exemple : case >=60.
Le risque d'erreur de saisie avec l'instruction prompt est très très élevé.
Il faut mieux utiliser une liste déroulante (donc un contrôle de formulaire) pour la saisie du code minéralogique.
Le code correspondant (extraits) devient alors :