L'instruction IF.... ELSE permet de choisir entre deux blocs d'instructions lors d'un test logique. L'instruction IF... ELSE utilise les opérateurs de comparaison pour des tests
de type boolean (vrai/faux). Rappel : (chapitre Les opérateurs de comparaison)
Opérateur |
Signification |
Exemple> |
< |
inférieur |
a < b |
<= |
inférieur ou égal |
a <= b |
== |
égal |
a == b |
> |
supérieur |
a > b |
>= |
supérieur ou égal |
a >= b |
!= |
différent |
a != b |
=== |
strictement égal |
a ===b |
!== |
strictement différent |
a !== b |
Vous pouvez introduire une autre comparaison à l'intérieur de la première. Par exemple :Exemple de code :
var nom ="dmc";
var nom2 =2;
if (nom=="dmc"){
if (nom2<5){
alert ("inférieur");
}else {
alert ("supérieur");
}
}else{
alert("pas ça");
} Ce qui revient à dire :si la variable nom est égale à "dmc" :
- et que la variable nom2 est inférieure à 5 alerte "inférieur";
- et que la variable nom2 est supérieure à 5 alerte "supérieur";
si la variable nom n'est pas égale à "dmc"
- alerte "pas ça".
Exemple 2 :Exemple de code :
var nom ="2";
if (nom===2){
alert ("égale");
}else {
alert ("pas égale");
} Nous obtenons une alerte "pas égale" car nous comparons un
String et un
Number.
L'instruction IF... ELSE utilise les opérateurs logiques pour une association de conditions.
Opérateur |
Signification |
Exemple |
&& |
et (interception) |
a && b |
|| |
ou ( réunion) |
a || b |
! |
non (négation) |
a ! b |
Imaginons maintenant que si la variable nom n'est pas égale à "dmc", j'alerte "n'est pas bon" et que si nom2 est supérieur à 5 , j'alerte le même message.
Je pourrais écrire :Exemple de code :
var nom ="dmc";
var nom2 =2;
if (nom=="dmc"){
if (nom2<5){
alert ("inférieur");
}else{
alert ("n'est pas bon") ;
}
}else{
alert("n'est pas bon");
} Cela est juste, mais il vaut mieux écrire : Exemple de code :
var nom ="dmc";
var nom2 =2;
if ((nom=="dmc") && (nom2<5)){
alert ("inférieur");
}else{
alert("n'est pas bon");
}Si vous voulez que au moins une condition soit bonne pour alerter "inférieur", il vous faut remplace && par ||.
L'instruction IF... ELSE peut effectuer des tests en cascade.
Maintenant, imaginons que nous voulons un message d'alerte différent suivant la valeur de nom2.
si nom2 <2, on alerte "inférieur à 2".
si nom2 = 4, on alerte "égal 4".
si nom2 <10 et différent de 4 et supérieur à 2 , on alerte "ok".
si nom2 ne remplit aucune des conditions nous alertons "nul".
Alors, nous écrirons : Exemple de code :
if (nom=="dmc"){
if (nom2 < 2) {
alert ("inférieur à 2 ");
} else if (nom2==4){
alert ("égal 4") ;
}else if (nom2<10 && nom2>2 && nom2 !=4){
$ alert ("ok");
}else{
alert ("nul") ;
}
}else { alert("n'est pas bon");
}