Contrôler le flux d'exécution
Utilisez les flèches, cliquez ou glissez pour naviguer
1. Conditions if / else if / else
Écrire des conditions complexes
2. Instruction switch
Utiliser break et comprendre le fall-through
3. Opérateur ternaire
Raccourci pour conditions simples
4. Cas limites et erreurs
Gérer les situations exceptionnelles
5. Combiner conditions et opérateurs logiques
Créer des expressions conditionnelles dans un projet concret
Module 1
if / else if / else
Module 2
switch
Module 3
Opérateur ternaire
Pièges courants
Erreurs à éviter
if / else if / else
Les conditions sont partout en programmation
C'est l'un des concepts les plus importants !
Exécuter du code si une condition est vraie
if
(condition) {
// Code exécuté si condition === true
}
Exemple :
let age = 20;
if (age >= 18) {
console.log("Majeur");
}
// Affiche "Majeur"
Une alternative si la condition est fausse
let
temperature = 25;
if
(temperature > 30) {
console.log("Il fait chaud !");
}
else
{
console.log("Température agréable");
}
// Affiche "Température agréable"
condition === true
→ bloc if
condition === false
→ bloc else
let note = 15;
if
(note >= 16) {
console.log("Très bien");
}
else if
(note >= 14) {
console.log("Bien");
}
else if
(note >= 12) {
console.log("Assez bien");
}
else
{
console.log("À améliorer");
}
// Affiche "Bien"
Tester du plus restrictif au moins restrictif
❌ Mauvais ordre
if (age >= 0) { ... }
else if (age >= 18) { ... }
// age >= 18 jamais atteint !
âś“ Bon ordre
if (age >= 65) { ... }
else if (age >= 18) { ... }
else { ... }
// Chaque cas est vérifié
Règle : Les conditions sont évaluées de haut en bas. La première vraie gagne !
&& (AND)
Les DEUX conditions doivent ĂŞtre vraies
|| (OR)
Au moins UNE condition doit ĂŞtre vraie
// Exemple : accès à un compte bancaire
let estConnecte = true;
let a2FA = true;
let estAdmin = false;
if
(estConnecte && a2FA) {
console.log("Accès autorisé");
}
if
(estAdmin || a2FA) {
console.log("Accès spécial");
}
L'instruction switch
Comparer une valeur Ă plusieurs cas possibles
switch
(valeur) {
case valeur1:
// Code si valeur === valeur1
break;
case valeur2:
// Code si valeur === valeur2
break;
default:
// Code si aucun cas ne correspond
}
Important : switch utilise la comparaison stricte (===)
let jour = "lundi";
switch
(jour) {
case "samedi":
case "dimanche":
console.log("Weekend !");
break;
case "lundi":
console.log("Début de semaine");
break;
default:
console.log("Jour de travail");
}
// Affiche "Début de semaine"
❌ Sans break (fall-through)
case "a":
console.log("A");
// Pas de break !
case "b":
console.log("B");
// Les 2 s'affichent !
âś“ Avec break
case "a":
console.log("A");
break;
case "b":
console.log("B");
break;
// Un seul s'affiche
Fall-through intentionnel : Parfois utile (ex: regrouper samedi/dimanche), mais attention aux bugs !
âś“ Utilisez switch
âś“ Utilisez if
L'opérateur ternaire
Un raccourci pour les conditions simples
condition ? valeurSiVrai : valeurSiFaux
if / else classique
let message;
if (age >= 18) {
message = "Majeur";
} else {
message = "Mineur";
}
âś“ Ternaire (plus court)
let message = age >= 18
? "Majeur"
: "Mineur";
// Afficher un message selon le statut
let estConnecte = true;
let statut = estConnecte ? "En ligne" : "Hors ligne";
// statut = "En ligne"
// Calculer un prix avec réduction
let estMembre = true;
let prix = estMembre ? 8 : 10;
// prix = 8
// Dans un template literal
let panier = 3;
console.log(`${panier} article${panier > 1 ? "s" : ""}`);
// "3 articles"
❌ Ternaire imbriqué (illisible)
let result = a > b
? (a > c ? a : c)
: (b > c ? b : c);
// Difficile Ă comprendre !
âś“ if / else (lisible)
if (a > b) {
result = a > c ? a : c;
} else {
result = b > c ? b : c;
}
// Plus clair !
Règle : Utilisez le ternaire pour des conditions simples et uniques. Pour du complexe, restez sur if/else.
Les erreurs à éviter absolument
❌ Sans accolades (risqué)
if (age >= 18)
console.log("Majeur");
console.log("Adulte");
// "Adulte" toujours affiché !
✓ Avec accolades (sûr)
if (age >= 18) {
console.log("Majeur");
console.log("Adulte");
}
// Les 2 dans le bloc
Conseil : Même pour une seule ligne, mettez les accolades par sécurité. Ça évite les bugs futurs.
// Le fall-through est un piège classique
let choix = 1;
switch
(choix) {
case 1:
console.log("Option 1");
// Oups, pas de break !
case 2:
console.log("Option 2");
// Pas de break non plus
default:
console.log("Autre");
}
// Affiche les 3 messages !
❌ = (affectation) dans un if
let x = 5;
if (x = 10) {
console.log("Vrai");
}
// Affiche "Vrai" ! x = 10 maintenant
âś“ === (comparaison)
let x = 5;
if (x === 10) {
console.log("Vrai");
}
// N'affiche rien (correct)
Danger : = affecte une valeur, === compare. Dans un if, utilisez toujours === ou !==
if / else if / else
Conditions flexibles
Ordre : restrictif → large
switch
Valeurs discrètes
N'oubliez pas break !
Ternaire
Conditions simples
? : en une ligne
Les conditions sont partout en programmation — maîtrisez-les !
L'ordre des conditions compte
Tester du plus restrictif au moins restrictif
Le ternaire est un raccourci
Ne l'utilisez pas pour du code complexe
Toujours utiliser ===
Jamais = dans une condition
Accolades et break obligatoires
Même pour une seule ligne, par sécurité
Pratiquez ces conditions dans vos projets !
La meilleure façon d'apprendre : expérimenter !