[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/while [Back]  [Original]

while - JavaScript | MDN

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 English Always switch to English

while

Baseline Large disponibilit

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'instruction while permet de crer une boucle qui s'excute tant qu'une condition de test est vrifie. La condition est value avant d'excuter l'instruction contenue dans la boucle.

Dans cet article

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 value avant chaque passage dans la boucle. Si cette expression est value vrai, instruction est excute. Lorsque la condition n'est pas vrifie, l'excution se poursuit avec l'instruction qui suit la boucle while.

instruction

Une instruction optionnelle qui doit tre excute tant que la condition d'entre est vrifie. Afin d'excuter plusieurs instructions au sein de la boucle, on utilisera gnralement un bloc d'instructions ({ /* */ }) pour les regrouper.

Note : On pourra utiliser l'instruction break afin d'arrter une boucle avant que la condition soit vrifie.

Exemples

Utiliser while

La boucle while qui suit s'excute tant que n est strictement infrieur 3.

js
let n = 0;
let x = 0;

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

chaque itration, la boucle incrmente la valeur de n et l'ajoute x. Ainsi, x et n prennent les valeurs suivantes :

  • Aprs la premire itration : n = 1 et x = 1
  • Aprs la deuxime itration : n = 2 et x = 3
  • Aprs la troisime itration : n = 3 et x = 6

Une fois que la troisime itration est excute, la condition n < 3 n'est plus vrifie et donc la boucle se termine.

Attention aux affectations dans les conditions

La condition passe l'instruction correspond gnralement un test. Si on oublie un signe gal =, un test d'galit ou de comparaison peut devenir une affectation et entraner 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 oprateur 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 boucle while, la convention veut d'ajouter une paire de parenthses (correspondant l'oprateur de groupement) autour de l'instruction d'affectation afin d'afficher clairement l'intention, idalement 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());
}

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-while-statement

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page