Aller au contenu
M05 · B. Acquérir les fondamentaux de JavaScript

Les structures de contrôle : conditions et boucles

Choisir entre plusieurs traitements avec if, else if et switch, et répéter une tâche avec for, while et for...of.

1Situer

Un centre de formation à Oujda veut une page qui affiche la mention de chaque stagiaire selon sa moyenne, et une table de révision. Décider selon une valeur, c'est une condition ; refaire la même chose pour chaque stagiaire, c'est une boucle. Ce sont les mêmes structures qu'en algorithmique, avec la syntaxe de JavaScript.

2Comprendre

Une boucle for, tour par tour
for (let i = 0; i < 4; i++) {   const s = stagiaires[i];   if (s.moyenne >= 16) …   else if … else …   liste.innerHTML += … } compteur i – i < 4 ? stagiaires [0] Salma : 16.5 [1] Youssef : 9.25 [2] Imane : 13 [3] Hamza : 11.75 la page • Salma (Très bien) • Youssef (Ajourné) • Imane (Assez bien) • Hamza (Passable)

Le tableau stagiaires a 4 éléments, numérotés de 0 à 3. La boucle va traiter chacun.

1 / 6

Les conditions

if (moyenne >= 16) {
  mention = 'Très bien';
} else if (moyenne >= 14) {
  mention = 'Bien';
} else {
  mention = 'Autre';
}

L’opérateur ternaire est un raccourci pour un choix simple :

const statut = moyenne >= 10 ? 'Admis' : 'Ajourné';

switch compare une valeur à plusieurs cas précis (n’oubliez pas break) :

switch (filiere) {
  case 'DEV': console.log('Développement digital'); break;
  case 'ID':  console.log('Infrastructure digitale'); break;
  default:    console.log('Autre filière');
}

Les boucles

BoucleQuand l’utiliser
for (let i = 0; i < n; i++)on connaît le nombre de tours
for (const x of tableau)parcourir les valeurs d’un tableau
for (const cle in objet)parcourir les propriétés d’un objet
while (condition)on répète tant qu’une condition est vraie
do { } while (condition)au moins une fois

break sort de la boucle, continue passe directement au tour suivant.

Tâche répétitive ou conditionnelle ?

  • « Pour chaque stagiaire… », « 10 fois… », « tant que… » : boucle ;
  • « si la moyenne… », « selon le jour… » : condition ;
  • souvent les deux ensemble : une condition dans une boucle.

Attention à la boucle infinie : dans un while, la condition doit finir par devenir fausse.

Exemple simple

Le feu tricolore

Si le feu est vert, on passe ; sinon, s'il est orange, on ralentit ; sinon, on s'arrête. C'est une suite if / else if / else.

if (feu === 'vert') {
  console.log('Passer');
} else if (feu === 'orange') {
  console.log('Ralentir');
} else {
  console.log('Stop');
}
Exemple simple

Distribuer les copies

Le formateur répète le même geste pour chaque stagiaire de la liste : c'est une boucle for...of.

for (const nom of ['Salma', 'Youssef', 'Imane']) {
  console.log(`Copie remise à ${nom}`);
}

3Manipuler

Le script parcourt les moyennes du groupe. Complétez les conditions et la boucle ; chaque stagiaire doit apparaître dans la liste de la page.
Ouvrir dans le lab ↗
Console
  • Utilisez une boucle (for...of) pour afficher les 4 stagiaires
  • Ajoutez les mentions : Bien (≥ 14), Assez bien (≥ 12), Passable (≥ 10), sinon Ajourné
  • Les stagiaires sous 10 reçoivent la classe refuse (en rouge)
  • Après la boucle, affichez le nombre d'admis dans la console : « Admis : 3 »

4Pratiquer

Exercice 1 · Le jour de la semaine

Avec switch, affichez « Souk » si jour vaut 'dimanche', « Hammam » si c'est 'mercredi', et « Travail » sinon.

Voir le corrigé
switch (jour) {
  case 'dimanche':
    console.log('Souk');
    break;
  case 'mercredi':
    console.log('Hammam');
    break;
  default:
    console.log('Travail');
}

Exercice 2 · La table de multiplication

Affichez dans la console la table de 7 (7 x 1 = 7 jusqu'à 7 x 10 = 70) avec une boucle for.

Voir le corrigé
for (let i = 1; i <= 10; i++) {
  console.log(`7 x ${i} = ${7 * i}`);
}

Exercice 3 · L'épargne

Ali épargne 500 DH par mois. Avec une boucle while, calculez combien de mois il lui faut pour atteindre 8 000 DH.

Voir le corrigé
let epargne = 0;
let mois = 0;
while (epargne < 8000) {
  epargne += 500;
  mois++;
}
console.log(`${mois} mois`); // 16 mois

5Vérifier

1. Combien de fois s'exécute for (let i = 0; i < 5; i++) ?
2. À quoi sert break dans un switch ?
3. Quelle boucle parcourt directement les éléments d'un tableau ?