Boucle infinie

Définition, exemples et bonnes pratiques

À retenir

  • C'est une répétition qui ne s'arrête jamais d'elle-même.
  • Elle peut bloquer un logiciel ou faire chauffer le processeur de l'ordinateur.
  • Elle peut être accidentelle (un bug) ou intentionnelle (un service qui tourne en tâche de fond).

Une boucle infinie est une suite d'instructions qu'un ordinateur répète sans jamais s'arrêter. C'est un peu comme un disque rayé ou un GPS qui vous demanderait de faire le tour d'un rond-point indéfiniment parce qu'il a oublié de vous indiquer la sortie.

Étymologie

Le terme vient de l'image de la « boucle » (loop en anglais), une structure de programmation qui permet de revenir au début d'un bloc d'instructions. L'adjectif « infinie » souligne l'absence de condition de sortie. Ce concept est lié au célèbre « problème de l'arrêt » théorisé par Alan Turing dès 1936.

Exemples d'usage

  • Un programme qui affiche « Bonjour » tant que 1 est égal à 1 (ce qui est toujours vrai).
  • Une application de messagerie qui vérifie les nouveaux messages mais oublie de passer au message suivant, restant bloquée sur le premier.
  • Un script qui attend qu'un fichier soit supprimé pour s'arrêter, alors que ce fichier n'existe même pas.

Cas d'usage

Elle intervient souvent comme une erreur (bug) due à un oubli du développeur. Cependant, elle est utilisée volontairement dans les programmes qui doivent tourner en permanence, comme les serveurs web qui attendent des connexions ou les moteurs de jeux vidéo qui rafraîchissent l'image en continu.

Bonnes pratiques

Il faut toujours s'assurer que la condition de sortie d'une boucle pourra être remplie à un moment donné. Une astuce consiste à ajouter un compteur de sécurité (un nombre maximum de tours) ou à utiliser des outils de débogage pour surveiller l'évolution des variables à l'intérieur de la boucle.

Synonymes

boucle sans fin itération infinie

Antonymes

condition d'arrêt boucle finie terminaison

Conseil

Quand vous écrivez une boucle while (tant que), vérifiez toujours que la variable utilisée dans la condition change bien de valeur à l'intérieur de la boucle. Si elle reste constante, vous risquez de créer une boucle infinie.

Questions fréquentes

Comment arrêter une boucle infinie ?

En général, on utilise un raccourci clavier comme Ctrl+C dans un terminal, ou on force l'arrêt du programme via le Gestionnaire des tâches.

Est-ce qu'une boucle infinie peut casser l'ordinateur ?

Physiquement non, mais elle peut le ralentir considérablement et saturer la mémoire ou le processeur jusqu'au redémarrage.