4.6 Boucle infinie
Quand vous écrivez des boucles, vous devez connaître le piège classique : la boucle infinie. Comme son nom l'indique, elle s'exécute pour toujours. Si vous en créez une par accident, vous bloquerez votre navigateur ou votre ordinateur, et la seule issue sera de fermer l'onglet de force.
Exemple typique : oublier d'incrémenter
Déclarons une variable i à 0 et plaçons-la dans une boucle while (i < 5) qui affiche i. Si on oublie i++, i reste à 0, la condition reste vraie, et la console se remplit de 0 à toute vitesse. Le navigateur charge à l'infini, et il faut souvent forcer la fermeture de l'onglet.
// Boucle infinie : i n'est jamais incrémenté
let i = 0;
while (i < 5) {
console.log(i);
}
// Autre boucle infinie : condition toujours vraie
while (true) {
// ...
}
Les boucles infinies touchent tous les types de boucle
Les while ne sont pas les seules concernées. Une boucle do...while (true) tourne aussi indéfiniment. Une boucle for peut être infinie si la condition est mal écrite (i > 0 avec i qui démarre à 0) ou si on oublie la troisième partie (l'incrément). Soyez donc vigilant : vérifiez toujours que votre variable de boucle progresse et que la condition finira par devenir fausse. On se retrouve dans la prochaine vidéo sur la boucle for...in.
En résumé
Une boucle infinie est une boucle qui s'exécute indéfiniment car la condition de sortie ne change jamais, généralement suite à l'oubli d'incrémenter la variable de contrôle. Cela peut être accidentel et planter le navigateur ou l'ordinateur. Les boucles infinies peuvent survenir dans tous les types de boucles : while, do...while et for.
Points clés
- Une boucle infinie s'exécute indéfiniment sans jamais satisfaire sa condition de sortie
- L'erreur la plus courante : oublier d'incrémenter (++) la variable de contrôle dans la boucle
- Une boucle infinie plante le navigateur et affiche rapidement un grand nombre d'itérations en console
- Les boucles infinies peuvent survenir dans les boucles while, do...while et for selon les conditions écrites
- La seule solution pour sortir d'une boucle infinie est de fermer la fenêtre ou forcer la fermeture du programme
- Il faut rester conscient des conditions de boucle et de l'incrémention des variables pour éviter ce piège
Questions fréquentes
Comment reconnaître une boucle infinie ?
Une boucle infinie se manifeste par un chiffre qui augmente rapidement dans la console (ex: 0, 0, 0... s'affichant des milliers de fois) et une page qui charge indéfiniment. Le navigateur devient figé et non réactif.
Quelle est la cause la plus fréquente d'une boucle infinie en JavaScript ?
L'oubli d'incrémenter (++) la variable de contrôle à chaque itération. Par exemple, une boucle while qui teste 'i < 5' mais ne fait jamais 'i++' continuera indéfiniment car i restera toujours inférieur à 5.
Les boucles infinies concernent-elles tous les types de boucles ?
Oui. Les boucles infinies peuvent survenir dans les boucles while, do...while et for. Dans les boucles for, l'oubli de la troisième partie (l'incrémention) ou une condition incorrecte crée une boucle infinie.