Les opérateurs de comparaison
| Opérateur | Description | Usage | Résultat |
|---|---|---|---|
< | Inférieur à | 2 < 3 | true |
> | Supérieur à | 5 > 8 | false |
<= | Inférieur ou égal à | 5 + 5 <= 10 | true |
>= | Supérieur ou égal à | 5 + 5 >= 12 | false |
== | Egal à | 2 == 2 | true |
=== | Strictement égal à | 2 === "2" | false |
!= | N’est pas égal à | 3 != 3 | false |
!== | N’est pas strictement égal à | 3 !== "3" | false |
! | Différent de… (inverse la valeur qui suit) | !true | false |
|| | Ou | 2 > 3 || 4 < 5 | true |
&& | Et | 2 > 3 && 4 < 5 | false |
|| 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).
