Un programme ne se contente pas d'exécuter des instructions dans l'ordre. Il doit aussi pouvoir prendre des décisions : l'utilisateur est-il majeur ? le score dépasse-t-il 100 ? le mot de passe est-il correct ? En JavaScript, ces décisions s'écrivent avec if, else et else if.
Une condition est une question à laquelle on peut répondre par vrai ou faux :
Selon la réponse, le programme suit un chemin ou un autre.
if — exécuter du code seulement si...La forme la plus simple : un seul bloc, exécuté uniquement si la condition est vraie.
if (condition) {
// instructions exécutées si la condition est vraie
}
Exemple :
let age = 20;
if (age >= 18) {
console.log("Vous êtes majeur");
}
Si la condition est fausse, rien ne se passe — le programme continue sans exécuter le bloc.
if / else — deux chemins, un seul empruntéPour exécuter un bloc si vrai, un autre si faux :
let age = 16;
if (age >= 18) {
console.log("Accès autorisé");
} else {
console.log("Accès refusé");
}
Une seule des deux branches est exécutée. Jamais les deux, jamais aucune.
condition ?
/ \
vrai faux
| |
bloc A bloc B
if / else if / else — plusieurs casQuand il y a plus de deux possibilités, on enchaîne des else if.
let note = 72;
if (note >= 90) {
console.log("Excellent");
} else if (note >= 75) {
console.log("Très bien");
} else if (note >= 50) {
console.log("Réussi");
} else {
console.log("Échec");
}
Les conditions sont testées dans l'ordre. Dès qu'une est vraie, son bloc s'exécute et les suivantes ne sont plus évaluées.
Le else final attrape tout ce qui n'a été capturé par aucune condition précédente. Il est optionnel.
| Opérateur | Signification |
|---|---|
> |
supérieur à |
< |
inférieur à |
>= |
supérieur ou égal |
<= |
inférieur ou égal |
=== |
égal |
!== |
différent |
Utilise === (et !==), pas == (et !=).
== compare en convertissant les types : "5" == 5 est true (bizarre). === compare sans conversion : "5" === 5 est false (logique). Prends l'habitude de === dès maintenant, tu t'épargneras des heures de bugs.
Quand on teste des seuils (notes, scores, âges…), l'ordre n'est pas neutre. JavaScript s'arrête à la première condition vraie.
// ❌ Ordre incorrect
let note = 80;
if (note >= 50) {
console.log("Réussi"); // ← s'affiche ici
} else if (note >= 75) {
console.log("Très bien"); // jamais atteint
}
Note = 80 est ≥ 50, donc on affiche "Réussi" et c'est fini. "Très bien" n'est jamais testé.
// ✅ Du plus exigeant au plus permissif
if (note >= 75) {
console.log("Très bien");
} else if (note >= 50) {
console.log("Réussi");
}
Règle pratique :
>= ou > → tester du plus grand au plus petit<= ou < → tester du plus petit au plus grandlet age = prompt("Quel est votre âge ?");
age = parseInt(age); // prompt() renvoie un string, on le convertit en nombre
if (age >= 18) {
alert("Bienvenue !");
} else if (age >= 12) {
alert("Accès restreint.");
} else {
alert("Trop jeune.");
}
prompt() renvoie toujours un texte, même quand on tape un nombre. parseInt() est obligatoire avant toute comparaison numérique.
= et ===if (age = 18) { ... } // ❌ assigne 18 à age, condition toujours "vraie"
if (age === 18) { ... } // ✅ compare age à 18
C'est la cause de bug la plus classique chez les débutants. === toujours, sauf si tu sais ce que tu fais.
// ❌ Trompeur
if (age >= 18)
console.log("Bienvenue");
console.log("Tu peux entrer"); // ← TOUJOURS exécuté, indépendamment du if
Sans accolades, seule la première instruction dépend du if. L'indentation ne change rien — c'est un piège visuel. Mets toujours les { }.
if age >= 18 { ... } // ❌ erreur de syntaxe
if (age >= 18) { ... } // ✅
if (condition) { ... } — exécute si vrai, ignore sinon.if / else — un chemin sur deux.if / else if / else — plusieurs cas, dans l'ordre, seule la première condition vraie est exécutée.=== toujours, jamais ==.{ }, même pour une seule instruction.>=, croissant avec <=.Pour combiner plusieurs conditions dans un seul test (ET, OU), voir l'article suivant.