JavaScript - Les conditions

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.

    4ttr 5ttr 6ttr
  • niveau

Une condition, c'est une question

Une condition est une question à laquelle on peut répondre par vrai ou faux :

  • L'âge est-il supérieur à 18 ?
  • Le mot de passe est-il correct ?
  • Le score dépasse-t-il 100 ?

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 cas

Quand 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.


Les opérateurs de comparaison

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.


L'ordre des conditions compte

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 :

  • comparaisons >= ou > → tester du plus grand au plus petit
  • comparaisons <= ou < → tester du plus petit au plus grand

Exemple complet : saisie utilisateur

let 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.


Erreurs fréquentes

Confondre = 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.

Oublier les accolades

// ❌ 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 { }.

Oublier les parenthèses

if age >= 18 { ... }    // ❌ erreur de syntaxe
if (age >= 18) { ... }  // ✅

À retenir

  • 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 ==.
  • Toujours les { }, même pour une seule instruction.
  • Pour les seuils : ordre décroissant avec >=, croissant avec <=.

Pour combiner plusieurs conditions dans un seul test (ET, OU), voir l'article suivant.