Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Instructions
  5. while

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

while

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

L'instructionwhile permet de créer une boucle qui s'exécute tant qu'une condition de test est vérifiée. La condition est évaluée avant d'exécuter l'instruction contenue dans la boucle.

Exemple interactif

let n = 0;while (n < 3) {  n++;}console.log(n);// Expected output: 3

Syntaxe

js
while (condition)  instruction
condition

Une expression qui est évaluée avant chaque passage dans la boucle. Si cette expression estévaluée à vrai,instruction est exécutée. Lorsque la conditionn'est pas vérifiée, l'exécution se poursuit avec l'instruction qui suit la bouclewhile.

instruction

Une instruction optionnelle qui doit être exécutée tant que la condition d'entrée est vérifiée. Afin d'exécuter plusieurs instructions au sein de la boucle, on utilisera généralement unbloc d'instructions ({ /* … */ }) pour les regrouper.

Note :On pourra utiliser l'instructionbreak afin d'arrêter une boucle avant que la condition soit vérifiée.

Exemples

Utiliserwhile

La bouclewhile qui suit s'exécute tant quen est strictement inférieur à 3.

js
let n = 0;let x = 0;while (n < 3) {  n++;  x += n;}

À chaque itération, la boucle incrémente la valeur den et l'ajoute àx. Ainsi,x etn prennent les valeurs suivantes :

  • Après la première itération :n = 1 etx = 1
  • Après la deuxième itération :n = 2 etx = 3
  • Après la troisième itération :n = 3 etx = 6

Une fois que la troisième itération est exécutée, la conditionn < 3 n'est plus vérifiée et donc la boucle se termine.

Attention aux affectations dans les conditions

La condition passée à l'instruction correspond généralement à un test. Si on oublie un signe égal=,un test d'égalité ou de comparaison peut devenirune affectation et entraîner un comportement inattendu avec une boucle infinie.

Par exemple, le fragment qui suit causera une boucle infinie :

js
const seuil = 14;let compteur = 0;while ((compteur = seuil)) {  compteur++;  /* Faire quelque chose avec compteur */}

Ici, il s'agit de corriger le test en utilisant le bon opérateur de comparaison :

js
const seuil = 14;let compteur = 0;while (compteur <= seuil) {  compteur++;  /* Faire quelque chose avec compteur */}

Si on veut explicitement utiliser une affectation comme condition pour la bouclewhile, la convention veut d'ajouter une paire de parenthèses (correspondant àl'opérateur de groupement) autour de l'instruction d'affectation afin d'afficher clairement l'intention, idéalement en utilisant la valeur de retour de cette affectation pour faire la comparaison :

js
const iterator = document.createNodeIterator(document, NodeFilter.SHOW_COMMENT);let currentNode;while ((currentNode = iterator.nextNode()) !== null) {  console.log(currentNode.textContent.trim());}

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-while-statement

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp