Boucle do while en JavaScript - fonctionnement et exemples

Denis Ribeiro .

20 septembre 2026

Diagramme de flux illustrant une boucle `while` : test de condition, exécution du corps de la boucle si vrai, puis retour au test. La boucle se termine si la condition est fausse.

Une condition peut être fausse dès le départ, tout en exigeant une première action. C’est précisément le cas auquel répond la structure do while, très présente en JavaScript, Java, C, C++ et C#. Je vous montre ici son fonctionnement, ses différences avec les autres boucles, ses usages concrets et les erreurs qui provoquent les boucles infinies.

Une boucle pensée pour agir avant de vérifier

  • Exécution garantie : le bloc tourne au moins une fois.
  • Condition finale : le test intervient après chaque passage.
  • Usage idéal : menus, saisies utilisateur et tentatives répétées.
  • Risque principal : oublier de modifier la valeur contrôlée.
  • Alternative Python : utiliser while True avec break.

Le principe qui change tout dans une boucle

Une boucle do...while exécute d’abord un bloc d’instructions, puis vérifie si elle doit recommencer. La condition arrive donc à la fin, contrairement à une boucle while classique qui teste la situation avant d’entrer dans le bloc.

Cette différence paraît minime, mais elle modifie complètement le comportement du programme. Même si la condition est fausse dès le départ, le contenu du bloc sera exécuté au moins une fois. C’est utile lorsqu’une première action est obligatoire avant de pouvoir prendre une décision.

do {
  instruction;
} while (condition);

Le point-virgule final est important dans les langages de la famille C. En JavaScript, par exemple, la condition est évaluée après le premier passage. Si elle renvoie true, le bloc recommence. Si elle renvoie false, le programme poursuit son exécution après la boucle.

Comment suivre son déroulement étape par étape

Pour comprendre cette structure, je conseille de suivre trois éléments à chaque tour. Il faut identifier l’action réalisée, la valeur modifiée et le résultat du test final. Cette méthode permet de repérer rapidement une condition qui ne pourra jamais devenir fausse.

let tentative = 0;

do {
  tentative += 1;
  console.log(`Tentative ${tentative}`);
} while (tentative < 3);

Voici ce qui se passe concrètement. La variable commence à zéro, puis passe à 1 lors du premier tour. Le test confirme que 1 est inférieur à 3, la boucle continue, puis le même mécanisme se répète avec 2 et 3. Après la troisième tentative, l’expression 3 < 3 devient fausse et l’exécution s’arrête.

Tour Valeur de tentative Résultat du test
1 1 Vrai, on recommence
2 2 Vrai, on recommence
3 3 Faux, on sort

Dans mes revues de code, je vois souvent des débutants lire cette boucle comme si la condition était placée en haut. C’est le piège principal. Pour éviter l’erreur, je me pose toujours cette question simple : que se passe-t-il lors du tout premier passage?

Choisir entre do...while, while et for

Ces trois structures répètent des instructions, mais elles ne répondent pas au même besoin. Le bon choix dépend surtout du moment où la condition peut être connue et de la manière dont le nombre de passages est déterminé.

Structure Moment du test Cas recommandé Point de vigilance
do...while Après le bloc Une première action est toujours nécessaire Le bloc s’exécute même si la condition est fausse
while Avant le bloc Le bloc peut ne jamais être exécuté La condition doit être vraie dès l’entrée
for Avant chaque tour Un compteur ou une collection contrôle la répétition La syntaxe devient vite confuse si la logique est complexe

Si je dois parcourir une liste connue, je préfère généralement for ou for...of. Pour attendre qu’un état change, while est souvent plus lisible. En revanche, pour afficher un menu au moins une fois ou demander une saisie avant de la valider, do...while est plus naturel.

Une particularité utile selon les langages

La structure existe dans plusieurs langages, avec une logique presque identique. JavaScript, Java, C, C++ et C# utilisent une forme proche. Python ne propose pas de mot-clé natif équivalent, mais on peut reproduire le comportement avec while True et une sortie explicite grâce à break.

while True:
    valeur = input("Saisissez oui ou non : ")
    if valeur in ("oui", "non"):
        break

La syntaxe change, mais l’intention reste la même : réaliser une première tentative, puis recommencer uniquement si le résultat ne convient pas.

Les situations où cette boucle est vraiment pertinente

Valider une saisie utilisateur

Un formulaire ou un programme en console doit souvent demander une valeur au moins une fois. La boucle peut ensuite recommencer tant que la réponse ne respecte pas les règles prévues.

let age;

do {
  age = Number(prompt("Quel âge avez-vous ?"));
} while (!Number.isInteger(age) || age < 0);

Ce modèle rend l’intention très claire. L’utilisateur reçoit une demande, le programme vérifie la réponse, puis recommence si la donnée est invalide. En pratique, je recommande toutefois d’ajouter un nombre maximal d’essais dans une application réelle afin d’éviter un blocage sans fin.

Afficher un menu interactif

Un menu doit généralement apparaître avant que le programme puisse décider de continuer ou de quitter. C’est l’un des exemples les plus faciles à comprendre.

let choix;

do {
  choix = prompt("1. Afficher les données\n2. Quitter");

  if (choix === "1") {
    console.log("Données affichées");
  }
} while (choix !== "2");

La sortie dépend ici de la réponse de l’utilisateur. Le menu apparaît toujours une première fois, puis reste actif tant que l’option de sortie n’a pas été choisie. Pour une interface graphique moderne, des événements sont souvent préférables, mais ce modèle reste très pratique pour les scripts et les exercices.

Lire aussi : Apprendre à coder - Combien de temps faut-il vraiment ?

Répéter une tentative avec une limite

Une opération réseau, une lecture de fichier ou une connexion peut échouer temporairement. Une boucle de répétition peut alors être pertinente, à condition de prévoir une limite et, si nécessaire, un délai entre deux essais.

let essais = 0;
let succès = false;

do {
  essais += 1;
  succès = effectuerOperation();
} while (!succès && essais < 3);

La limite de 3 essais n’est pas une règle universelle. Elle dépend du service, du temps d’attente acceptable et du risque de répéter une action déjà enregistrée. Pour un paiement ou une création de compte, répéter automatiquement une requête peut même produire un doublon.

Les erreurs qui provoquent les boucles infinies

Le problème le plus fréquent est une variable de contrôle qui ne change jamais. Si la condition reste vraie à chaque passage, le programme continue indéfiniment et peut consommer inutilement du temps processeur ou bloquer une interface.

let nombre = 1;

do {
  console.log(nombre);
} while (nombre < 5);

Dans cet exemple, nombre reste égal à 1. La correction consiste à faire évoluer cette valeur dans le bloc.

let nombre = 1;

do {
  console.log(nombre);
  nombre += 1;
} while (nombre < 5);
  • Modifier la variable testée à chaque tour lorsque c’est nécessaire.
  • Vérifier que la condition peut réellement devenir fausse.
  • Éviter les comparaisons ambiguës entre texte et nombres.
  • Utiliser break uniquement pour une sortie exceptionnelle et lisible.
  • Employer continue avec prudence, car il peut masquer une mise à jour placée trop bas.

Une autre erreur classique consiste à placer une instruction importante après continue. Elle ne sera alors jamais exécutée lors du tour concerné. Avant de valider une boucle, je teste toujours les trois cas essentiels : condition fausse au premier passage, condition vraie plusieurs fois et arrêt après la dernière répétition.

Le bon réflexe avant d’utiliser cette structure

La question décisive est simple : l’action doit-elle vraiment avoir lieu une première fois? Si la réponse est non, une boucle while sera probablement plus sûre. Si la réponse est oui, la structure étudiée ici traduit directement cette intention dans le code.

Je conseille aussi de rendre la sortie visible dans le code. Un compteur, un état mis à jour ou une condition clairement nommée facilite la lecture et le débogage. Une boucle courte et explicite vaut mieux qu’une logique compacte qui oblige le prochain développeur à deviner quand elle s’arrête.

Bien maîtrisée, cette construction n’est pas seulement une variante de while. Elle sert à représenter un scénario précis : agir, vérifier, puis recommencer si nécessaire. C’est cette logique qui la rend particulièrement utile pour les saisies, les menus et les tentatives contrôlées.

Questions fréquentes

La boucle do while exécute son bloc au moins une fois, car la condition est vérifiée à la fin. La boucle while teste la condition avant le premier passage et peut donc ne jamais exécuter le bloc.
Elle convient lorsqu'une première action est obligatoire, par exemple pour afficher un menu, demander une saisie utilisateur ou effectuer une première tentative. Pour parcourir une liste connue, une boucle for ou for...of est généralement plus adaptée.
Python ne possède pas de mot-clé do while natif. Il faut utiliser while True, effectuer l'action, puis employer break lorsque la valeur obtenue respecte la condition attendue.
La variable contrôlée doit évoluer à chaque tour lorsque c'est nécessaire, et la condition doit pouvoir devenir fausse. Il faut aussi tester l'arrêt après plusieurs répétitions et prévoir une limite d'essais pour les saisies ou les tentatives répétées.
Évaluer l'article

Moyenne: 0.0 / 5 · 0 évaluations

Tags

javascript python menus boucles infinies
Autor Denis Ribeiro
Denis Ribeiro
Je m'appelle Denis Ribeiro et j'ai quatre ans d'expérience dans le domaine de la technologie, en particulier dans les domaines du web, de l'intelligence artificielle, des réseaux et de la sécurité. Mon intérêt pour ces sujets a commencé dès mon plus jeune âge, lorsque j'ai découvert à quel point la technologie pouvait transformer notre quotidien. J'aime expliquer des concepts complexes de manière simple, afin d'aider mes lecteurs à mieux comprendre les enjeux actuels et futurs de notre monde numérique. Dans mes écrits, je m'efforce de fournir des informations utiles, précises et à jour. Je prends le temps de vérifier mes sources et de comparer les informations, tout en suivant les dernières tendances du secteur. Mon objectif est de rendre l'apprentissage accessible à tous, en organisant mes connaissances de manière claire et structurée, afin que chacun puisse naviguer avec confiance dans cet univers en constante évolution.
Commentaires (2)
  • I

    Isidore

    20 septembre 2026

    Merci pour cette explication claire sur la boucle do while !

  • E

    Estelle758

    20 septembre 2026

    oui la boucle do while c'est bien pratique quand on veut etre sur que ca tourne au moins une fois, ca m'a bien aide pour un petit programme de menu simple. merci pour l'explication clair. 👍

    Denis RibeiroDenis RibeiroAuteur

    20 septembre 2026

    Cieszę się, że pomogłem! 😊

Ajouter un commentaire