Cours de Javascript 2022
Chapitre 3 - Théorie 5 : Le if ... else if ... else
Nous allons voir le dernier cas qui nous intéresse, la structure if, else if, else. En français on peut le traduire par "si, sinon si, sinon". Et cette structure peut nous permettre de créer de multiples embranchements dans notre code. En réalité, cette structure, comme la if, else, est en fait un raccourcis d'écriture, mais on pourrait très bien réaliser la même chose simplement avec des if en complexifiant nos conditions.
Imaginons maintenant ce cas pour bien comprendre comment cette structure marche :
Imaginons que nous voulions communiquer à quelqu'un la catégorie de poids dans laquelle il est en fonction de son IMC. On a ces bornes suivantes :
- IMC < 16.5 : Dénutrition
- 16.5 >= IMC > 18.5 : maigreur
- 18.5 >= IMC > 25 : poids normal
- 25 >= IMC > 30 : surpoids
- 30 >= IMC > 35 : obésité modérée
- 35 >= IMC > 40 : obésité sévère
- 40 >= IMC : obésité morbide
Avec une structure composée uniquement composée de if, on pourrait avoir 7 conditions avec des et, comme ceci :
- condition 1 : IMC < 16.5
- condition 2 : IMC > 16.5 && IMC < 18.5
- condition 3 :IMC >= 18.5 && IMC < 25
- condition 4 :IMC >= 25 && IMC < 30
- condition 5 :IMC >= 30 && IMC < 35
- condition 6 :IMC >= 35 && IMC < 40
- condition 7 :IMC >= 40
Avec notre alert correspondant à la catégorie de poids dans chacun des if correspondant. Mais avec les else if, on peut gagner du temps d'écriture !
let IMC = 28;
if(IMC < 16.5)
{
alert ("Vous êtes en stade de dénutrition");
}
else if(IMC < 18.5)
{
alert ("Vous êtes en stade de maigreur");
}
else if(IMC < 25)
{
alert ("Vous êtes en stade de normal");
}
else if(IMC < 30)
{
alert ("Vous êtes en stade de surpoids")
}
else if(IMC < 35)
{
alert ("Vous êtes en stade d'obésité modérée");
}
else if(IMC < 40)
{
alert ("Vous êtes en stade d'obésité sévère");
}
else
{
alert ("Vous êtes en stade d'obésité morbide");
}
En réalité, nous ne rentrerons dans un else if que si, et uniquement si, nous ne sommes pas rentré dans la condition strictement précédente et que nous répondons vrai à la question posée dans les parenthèses de ce else if. Ainsi, si on peut rentrer dans la condition IMC < 35, c'est à dire l'obésité modéré, il faudra d'abord avoir répondu faux aux questions posées par tous les autre if et else if, donc il faudra répondre faux à IMC < 16.5, IMC < 18.5, IMC < 25 et IMC < 30, ce qui veut donc dire que IMC devra être soit égal 30, soit plus grand que 30 et quoi qu'il arrive inférieur à 35. Et si on a un chiffre supérieur à 35, alors on teste la condition suivante, ainsi de suite jusqu'à arriver au moment on a plus que le choix d'être supérieur à 40. Dans ce cas, pour simplifier la tâche, on met un else, qui veut donc dire ici "Si nous ne somme pas rentré dans tous les cas précédents, alors nous écrivons obésité morbide"
Attention que le else de fin n'est pas obligatoire, on pourrait simplement avoir un if et des else if qui ne sont pas conclu par un else. Mais bien souvent on se sert du else pour dire "dans tous les autres cas, tu fais cette action par défaut", mais si cette action par défaut, c'est de ne rien faire, alors pas besoin de else !
Par contre, comme les else, les else if n'ont de sens et n'existent que précédé d'un if.