| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/while | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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.
let n = 0;
while (n < 3) {
n++;
}
console.log(n);
// Expected output: 3
while (condition)
instruction
conditionUne 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.
instructionUne 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.
whileLa boucle while qui suit s'excute tant que n est strictement infrieur 3.
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 :
n = 1 et x = 1n = 2 et x = 3n = 3 et x = 6Une fois que la troisime itration est excute, la condition n < 3 n'est plus vrifie et donc la boucle se termine.
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 :
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 :
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 :
const iterator = document.createNodeIterator(document, NodeFilter.SHOW_COMMENT);
let currentNode;
while ((currentNode = iterator.nextNode()) !== null) {
console.log(currentNode.textContent.trim());
}
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-while-statement |
Cette page a t modifie le 17 fvr. 2025 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |