Prendre des décisions avec if et else
Une instruction if exécute un bloc de code seulement quand sa condition est vraie. Avec else if, JavaScript vérifie les conditions à partir du haut et s'arrête à la première qui est vraie.
N'exécuter du code que dans certains cas
Jusqu'ici, chaque programme exécutait chaque ligne, à chaque fois. Les programmes utiles se comportent différemment selon la situation : un jeu affiche "You win" seulement quand le score est assez élevé, et une boutique ajoute des frais de livraison seulement quand la commande est petite. L'instruction if est le moyen de choisir en JavaScript.
const temperature = 31;
if (temperature >= 30) {
console.log("Hot day. Drink water.");
}
console.log("Done"); // s'affiche toujoursLa condition se place entre parenthèses après le mot if. C'est n'importe quelle expression qui produit un booléen, en général une comparaison de l'unité précédente. Le code à exécuter quand elle est vraie se place entre accolades, qui forment un bloc. Si la condition est fausse, JavaScript saute tout le bloc et continue après l'accolade fermante. Ci-dessus, les deux lignes s'affichent. Passe temperature à 20 et seul "Done" s'affiche. Les lignes à l'intérieur du bloc sont décalées de deux espaces. JavaScript n'a pas besoin de cette indentation, mais elle montre d'un coup d'œil quelles lignes appartiennent au if, et tout programmeur expérimenté s'y attend.
else : l'autre chemin
Souvent, on veut faire une chose quand la condition est vraie et autre chose quand elle est fausse. Ajoute un bloc else. Exactement un des deux blocs s'exécute, jamais les deux et jamais aucun.
const n = 7;
if (n % 2 === 0) {
console.log(n + " is even");
} else {
console.log(n + " is odd");
}
// affiche : 7 is oddelse if : plus de deux choix
Pour plusieurs possibilités, enchaîne des conditions avec else if. JavaScript les teste à partir du haut. Dès que l'une est vraie, il exécute ce bloc et saute tous les autres, même si des conditions suivantes seraient vraies aussi. Le else final attrape tout ce qui n'a correspondu à rien plus haut.
const score = 72;
if (score >= 90) {
console.log("A");
} else if (score >= 80) {
console.log("B");
} else if (score >= 70) {
console.log("C");
} else {
console.log("F");
}
// affiche : CL'ordre des conditions compte. Avec un score de 95, le premier test est déjà vrai et A s'affiche. Si les tests étaient écrits dans l'autre sens, en commençant par score >= 70, un score de 95 s'arrêterait au premier test et afficherait C. Quand les intervalles se chevauchent ainsi, place la condition la plus étroite en premier. Suivre le code à la main est une bonne habitude : choisis une valeur, lis à partir du haut et dis à voix haute quelle branche elle prend.
Imbriquer et combiner
Un bloc peut contenir une autre instruction if : c'est l'imbrication. On peut souvent éviter une imbrication profonde en combinant les conditions avec && et || de l'unité précédente. Ces deux morceaux de code font le même travail, et le second est plus facile à lire :
if (age >= 8) {
if (height >= 120) {
console.log("You can ride");
}
}
// même chose, plus lisible :
if (age >= 8 && height >= 120) {
console.log("You can ride");
}L'opérateur conditionnel
Quand il s'agit seulement de choisir entre deux valeurs, il existe une forme compacte appelée opérateur conditionnel (ternaire) : condition ? valeurSiVrai : valeurSiFaux. Par exemple, const label = n % 2 === 0 ? "even" : "odd";. Utilise-le pour des choix de valeur courts. Pour tout ce qui exécute plusieurs instructions, un if et un else normaux sont plus clairs.
Une erreur fréquente consiste à écrire un seul signe égal dans la condition : if (score = 100). Cela range 100 dans score au lieu de comparer, et le bloc s'exécute à chaque fois. Compare toujours avec ===.
if (condition) { ... } else if (autre condition) { ... } else { ... }
| condition | L'expression booléenne dans if ( ) |
| bloc | Des instructions regroupées entre { } |
| else | S'exécute quand la condition du if est fausse |
| else if | Une autre condition, vérifiée seulement si celles du dessus étaient fausses |
| branche | L'un des chemins possibles dans une instruction if |
| imbrication | Un if à l'intérieur d'un autre if |
| ternaire | cond ? a : b choisit l'une de deux valeurs |
| indentation | Les espaces en début de ligne à l'intérieur d'un bloc |
- Qu'affiche ce code ?
const x = 5; if (x > 3) { console.log("big"); } else { console.log("small"); } - Qu'affiche ce code ?
const x = 2; if (x > 3) { console.log("big"); } console.log("end");- big, then end
- Only end
- Nothing
- Qu'affiche ce code ?
const t = 18; if (t >= 30) { console.log("hot"); } else if (t >= 15) { console.log("mild"); } else { console.log("cold"); } - Qu'affiche ce code ?
const s = 95; if (s >= 70) { console.log("C"); } else if (s >= 90) { console.log("A"); } - Dans une chaîne if / else if / else, combien de blocs s'exécutent au maximum ?
- Qu'affiche ce code ?
const n = 10; console.log(n > 5 ? "yes" : "no"); - Qu'affiche ce code ?
const a = 4; const b = 9; if (a > 5 || b > 5) { console.log("one"); } else { console.log("none"); } - Qu'affiche ce code ?
const a = 4; const b = 9; if (a > 5 && b > 5) { console.log("both"); } else { console.log("not both"); } - Qu'est-ce qui ne va pas dans
if (score = 100)?- Rien
- Cela range 100 au lieu de comparer ; utilise ===
- Il faut un point-virgule à l'intérieur
- Qu'affiche ce code ?
let msg = "start"; const n = 0; if (n) { msg = "nonzero"; } console.log(msg);
- if (condition) { ... } n'exécute le bloc que lorsque la condition est vraie.
- else s'exécute quand elle est fausse ; exactement un des deux s'exécute.
- Les chaînes else if sont vérifiées à partir du haut ; la première condition vraie l'emporte.
- Place la condition la plus étroite en premier quand les intervalles se chevauchent.
- Compare avec ===, jamais avec un seul =.
Sources de ce cours (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Consulté le: 2026-10-17