Les conditions

Les opérateurs de comparaison

OpérateurDescriptionUsageRésultat
<Inférieur à2 < 3true
>Supérieur à5 > 8false
<=Inférieur ou égal à5 + 5 <= 10true
>=Supérieur ou égal à5 + 5 >= 12false
==Egal à2 == 2true
===Strictement égal à2 === "2"false
!=N’est pas égal à3 != 3false
!==N’est pas strictement égal à3 !== "3"false
!Différent de…
(inverse la valeur qui suit)
!truefalse
||Ou2 > 3 || 4 < 5true
&&Et2 > 3 && 4 < 5false

|| renverra true si une des deux expression comparées est vraie.
&& renverra true uniquement si les deux expressions comparées sont vraies.

Les opérateurs || et && permettent de combiner des conditions et s’évaluent de gauche à droite.

false && true || true;
true

false && (true || true);
false

Structure conditionnelle

if exécute le contenu des accolades si le contenu des parenthèses est vrai (true)

if ( 2 + 2 == 4) {
   alert("Salut !");
}

else exécute une alternative si if est faux (false)

var monChiffre = 6;

if ( monChiffre < 5) {
   alert("Ce n'est pas assez !");
} else {
   alert("C'est suffisant !");
}

elseif permet d’enchaîner plusieurs if

var taNote = prompt("Quelle note avez-vous obtenue ?");

if ( taNote < 10) {
   alert("Ce n'est pas terrible !");
} else if ( taNote == 10 ) {
   alert("Ouf ! tout juste !");
} else if ( taNote > 10 ) {
   alert("C'est pas mal !");
} else {
   alert("Je ne comprend pas ta note...");
}

En utilisant d’autres opérateurs de comparaison, nous pouvons être plus précis :

var taNote = prompt("Quelle note avez-vous obtenue ?");

if ( taNote > 0 && taNote < 10) {
   alert("Ce n'est pas terrible !");
} else if ( taNote == 10 ) {
   alert("Ouf ! tout juste !");
} else if ( taNote > 10 && taNote < 20 ) {
   alert("C'est pas mal !");
} else if ( taNote == 20 ) {
   alert("Bravo ! La note maximale !");
} else {
   alert("Je ne comprend pas ta note...");
}

Il existe une autre structure conditionnelle, basée sur la commande switch, qui est parfois mieux adapté à certaines situations car elle permet de rendre plus compact un enchaînement complexe de if / else if / else

var taNote = Number(prompt("Quelle note avez-vous obtenue ?"));

switch ( taNote ) {
case 0 :
   alert("C'est nul !");
   break;
case 1 :
case 2 :
case 3 :
case 4 :
case 5 :
case 6 :
case 7 :
case 8 :
case 9 :
   alert("C'est pas ouf !");
   break;
case 10 :
   alert("Ouf ! tout juste !");
   break;
case 11 :
case 12 :
case 13 :
case 14 :
case 15 :
case 16 :
case 17 :
case 18 :
case 19 :
   alert("C'est pas mal !");
   break;
case 20 :
   alert("Bravo ! La note maximale !");
   break;
default :
   alert("Je ne comprend pas ta note...");
}

Dans la commande switch, la comparaison avec la variable se faite à chaque ligne commençant par l’instruction case.

Il faut stopper le script si on rencontre un résultat avec break; Si on enchaine plusieurs case sans mettre de break; c’est comme si il y avait un « ou » entra chaque case.

L’instruction default: est l’équivalent du else utilisé dans la première structure conditionnelle.

Dans une comparaison switch, tout est strict ! C’est la raison pour laquelle on a ajouté la commande Number() à notre variable du début. Sans elle, le script ne fonctionne pas car le prompt() est une chaine de caractère (string).