Menu
Coddy logo textTech

Boucle infinie

Fait partie de la section Fondamentaux du Journey Java de Coddy — leçon 49 sur 73.

Une boucle infinie est une boucle qui ne s’arrête jamais parce que sa condition s’évalue toujours à true. Ces boucles peuvent se produire avec n’importe quel type de boucle (for, while, do-while), mais elles sont le plus souvent associées aux boucles while et do-while parce que leurs conditions sont explicitement énoncées.

Voici un exemple d'une boucle while infinie :

while (true) {
    System.out.println("This will print forever!");
}

Dans ce cas, la condition est simplement true, qui s'évalue toujours à true. Ainsi, la boucle s'exécutera indéfiniment, en imprimant le message encore et encore.

Une autre façon de créer une boucle infinie consiste à omettre la condition dans une boucle for :

for (;;) {
    System.out.println("This also prints forever!");
}

Ici, les parties d'initialisation, de condition et de mise à jour de la boucle for sont toutes omises. Cela crée une boucle qui s'exécute indéfiniment.

Les boucles infinies peuvent également se produire involontairement, par exemple lorsque la condition de la boucle est toujours true en raison d'une erreur logique :

int i = 0;
while (i < 10) {
    System.out.println("i is: " + i);
    // Missing i++ to increment i
}

Dans cet exemple, la variable i n'est jamais incrémentée, de sorte que la condition i < 10 est toujours true. Cela crée une boucle infinie qui continuera à imprimer "i is: 0" indéfiniment.

Les boucles infinies peuvent être utiles dans certains cas, comme dans les programmes serveurs qui doivent continuer à s'exécuter jusqu'à ce qu'ils soient arrêtés manuellement. Cependant, elles peuvent aussi faire geler ou planter les programmes si elles ne sont pas gérées correctement.

Aide-mémoire

Une boucle infinie est une boucle qui ne s’arrête jamais parce que sa condition s’évalue toujours à true.

Boucle while infinie intentionnelle :

while (true) {
    System.out.println("This will print forever!");
}

Boucle for infinie intentionnelle (en omettant toutes les parties) :

for (;;) {
    System.out.println("This also prints forever!");
}

Boucle infinie non intentionnelle (incrémentation manquante) :

int i = 0;
while (i < 10) {
    System.out.println("i is: " + i);
    // i++ manquant pour incrémenter i
}

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux