edubun
Français

Les boucles : for et while

Additionner à la main tous les entiers de 1 à 100 prend du temps. Une boucle for de trois lignes le fait d'un coup et affiche 5050.

Faire la même chose de nombreuses fois

Afficher les nombres de 1 à 5 avec cinq lignes console.log, ça va. Afficher de 1 à 1000 de cette façon, non. Une boucle exécute le même bloc de code encore et encore, en changeant un petit quelque chose à chaque fois, jusqu'à ce qu'une condition dise stop. C'est avec les boucles que les ordinateurs se rendent vraiment utiles : ils ne s'ennuient jamais et ne perdent jamais le compte.

La boucle for

for (let i = 1; i <= 5; i++) {
  console.log(i);
}
// affiche 1, 2, 3, 4, 5 sur des lignes séparées

Les parenthèses après for contiennent trois parties séparées par des points-virgules. La première, let i = 1, s'exécute une fois avant le début de la boucle et crée une variable compteur. La deuxième, i <= 5, est la condition, vérifiée avant chaque tour ; quand elle devient fausse, la boucle se termine. La troisième, i++, s'exécute après chaque tour et fait avancer le compteur. Un passage dans le bloc s'appelle une itération. Suis-la : i vaut 1, la condition est vraie, 1 s'affiche, i devient 2, et ainsi de suite jusqu'à ce que i devienne 6 ; la condition est alors fausse et le programme continue après l'accolade fermante.

Le compteur s'appelle en général i, une tradition venue des mathématiques, mais n'importe quel nom convient. On peut aussi compter avec d'autres pas : for (let i = 10; i >= 0; i -= 2) compte à rebours 10, 8, 6, 4, 2, 0.

Construire un total

Le motif de boucle le plus courant est l'accumulateur. Crée une variable avant la boucle, mets-la à jour à l'intérieur et utilise-la après. Voici la somme annoncée au début :

let sum = 0;
for (let i = 1; i <= 100; i++) {
  sum += i;
}
console.log(sum);   // affiche 5050

Observe la place de chaque ligne. Si let sum = 0 était dans la boucle, sum serait remis à zéro à chaque itération. Si console.log était dedans, il afficherait 100 totaux intermédiaires au lieu d'une seule réponse. L'avant et l'après de la boucle comptent autant que la boucle elle-même.

La boucle while

Une boucle while n'a qu'une condition. Elle continue d'exécuter son bloc tant que la condition est vraie. Utilise-la quand tu ne sais pas à l'avance combien de tours il faudra, par exemple pour doubler un nombre jusqu'à ce qu'il dépasse 1000.

let n = 1;
let steps = 0;
while (n <= 1000) {
  n *= 2;
  steps++;
}
console.log(n, steps);   // affiche 1024 10

Quelque chose à l'intérieur d'une boucle while doit finir par rendre la condition fausse. Si tu oublies la ligne qui modifie n, la condition reste vraie pour toujours. C'est une boucle infinie, et la page se fige. Si cela arrive dans une zone d'exercice, recharge la page et corrige le code. Avec une boucle for, l'étape de mise à jour est écrite dans l'en-tête, ce qui rend cette erreur plus rare.

break et continue

Deux mots-clés modifient le déroulement dans une boucle. break quitte la boucle immédiatement. continue saute le reste de l'itération en cours et passe à la suivante. Par exemple, une boucle de 1 à 10 qui commence par if (i % 3 === 0) continue; affiche tous les nombres sauf 3, 6 et 9.

Exemple corrigé. Combien de nombres de 1 à 50 sont des multiples de 7 ? Commence par let count = 0, fais varier i de 1 à 50 et écris à l'intérieur if (i % 7 === 0) count++;. Après la boucle, count vaut 7 : ce sont 7, 14, 21, 28, 35, 42 et 49.

for (début; condition; mise à jour) { corps } for (let i = 1; i <= 5; i++)

boucleDu code qui exécute un bloc encore et encore
itérationUn passage dans le corps de la boucle
compteurLa variable qui compte les tours, souvent i
accumulateurUne variable construite peu à peu dans une boucle, comme sum
whileRépète tant qu'une condition est vraie
boucle infinieUne boucle dont la condition ne devient jamais fausse
breakQuitter la boucle tout de suite
continuePasser à l'itération suivante
  1. Combien de lignes ce code affiche-t-il ?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  2. Quel est le dernier nombre affiché ?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  3. Qu'affiche ce code ?
    let total = 0;
    for (let i = 1; i <= 4; i++) {
      total += i;
    }
    console.log(total);
  4. Qu'affiche ce code ?
    let p = 1;
    for (let i = 1; i <= 5; i++) {
      p *= 2;
    }
    console.log(p);
  5. Qu'affiche ce code ?
    let n = 10;
    while (n > 3) {
      n -= 3;
    }
    console.log(n);
  6. Combien de lignes ce code affiche-t-il ?
    for (let i = 10; i >= 0; i -= 2) {
      console.log(i);
    }
  7. Qu'affiche ce code ?
    for (let i = 1; i <= 10; i++) {
      if (i === 4) break;
      console.log(i);
    }
    • 1 2 3 on separate lines
    • 1 to 10 except 4
    • 1 2 3 4 on separate lines
  8. Combien de lignes ce code affiche-t-il ?
    for (let i = 1; i <= 10; i++) {
      if (i % 2 === 0) continue;
      console.log(i);
    }
  9. Qu'est-ce qui ne va pas dans cette boucle ?
    let i = 0;
    while (i < 5) {
      console.log(i);
    }
    • Rien
    • i ne change jamais, donc elle ne s'arrête jamais
    • Elle n'affiche rien
  10. Qu'affiche ce code ?
    let count = 0;
    for (let i = 1; i <= 50; i++) {
      if (i % 7 === 0) count++;
    }
    console.log(count);
L'essentiel
  • for (début; condition; mise à jour) { ... } répète tant que la condition est vraie.
  • Crée les accumulateurs avant la boucle, mets-les à jour dedans, utilise-les après.
  • while (condition) { ... } convient aux boucles dont on ne connaît pas le nombre de tours.
  • Quelque chose doit rendre la condition fausse, sinon la boucle ne s'arrête jamais.
  • break quitte la boucle ; continue passe au tour suivant.
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