CodeGym /Cours /JAVA 25 SELF /La boucle while : présentation et nuances d’utilisat...

La boucle while : présentation et nuances d’utilisation

JAVA 25 SELF
Niveau 4 , Leçon 1
Disponible

1. Introduction

En programmation, on doit régulièrement exécuter les mêmes actions de nombreuses fois de suite. Par exemple :

  • Parcourir tous les éléments d’une liste.
  • Lire des valeurs au clavier tant que l’utilisateur n’a pas saisi la bonne.
  • Calculer la somme de tous les nombres de 1 à 100.
  • Demander le mot de passe à l’utilisateur jusqu’à ce qu’il soit correct.

Si vous essayez de faire tout cela sans boucles, ce sera long, ennuyeux et non évolutif. Imaginez que vous écriviez une calculatrice et que vous décidiez d’additionner les nombres de 1 à 10 manuellement :

int sum = 0;
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
// ... et ainsi 10 fois. Mouais.
Répéter à la main sans boucle — ce n’est pas pratique !

Vous vous ennuierez avant d’avoir terminé ! La solution — les boucles. Elles permettent de décrire la répétition d’actions de façon concise et claire. Aujourd’hui, nous allons faire connaissance avec la boucle la plus basique mais diablement utile — while.

2. Découverte de la boucle while

Syntaxe et schéma de base

La boucle while — c’est le « perroquet » du monde de la programmation : elle répète le même fragment de code tant qu’une certaine condition est vraie. Dès que la condition cesse d’être vraie, le perroquet se tait (la boucle se termine).

Syntaxe :

while (condition)
{
    // Corps de la boucle
}
Définition d’une boucle while avec un bloc d’instructions

Diagramme

Voici un organigramme simple pour comprendre le fonctionnement de la boucle while :

uml-while

3. Exemples : la boucle while en action

Compteur classique

Écrivons un petit programme qui compte de 1 à 5 et affiche les nombres :

int i = 1;
while (i <= 5)
{
    System.out.println("Étape n° " + i);
    i++; // N’oubliez pas d’incrémenter le compteur !
}
// Affichera :
// Étape n° 1
// Étape n° 2
// Étape n° 3
// Étape n° 4
// Étape n° 5

Attention : si vous oubliez d’augmenter la variable i, la boucle ne se terminera jamais (notre perroquet deviendra immortel et répétera à l’infini). On appelle cela une boucle infinie — c’est plutôt effrayant.

Saisie au clavier jusqu’à la valeur attendue

Il est courant d’utiliser une boucle pour « pousser » l’utilisateur jusqu’à la bonne réponse :

String password = "";
while (!password.equals("qwerty"))
{
    System.out.print("Entrez le mot de passe : ");
    password = console.nextLine();
}
System.out.println("Bienvenue !");

Ici, le programme demande de saisir le mot de passe jusqu’à ce que vous tapiez le magique "qwerty". N’oubliez pas : si vous supprimez la ligne password = console.nextLine();, la boucle redeviendra infinie (elle demandera le mot de passe sans lire l’entrée — elle restera bloquée pour toujours, comme un robot cassé).

4. Types et scénarios d’utilisation de la boucle while

Boucle while « classique »

Cette boucle, comme montré plus haut, évalue la condition avant la première itération. Si la condition est fausse d’emblée — le corps de la boucle ne s’exécute pas une seule fois.

Exemple : condition fausse dès le départ

int i = 10;
while (i < 5)
{
    System.out.println(i); // Ne s’exécutera jamais !
}

Ce qui est, somme toute, logique. C’est exactement ce qui est écrit.

Boucles while imbriquées

Parfois, il faut mettre une boucle dans une autre. Par exemple, parcourir toutes les lignes et, dans chacune, vérifier tous les caractères. À ce stade, c’est plutôt audacieux, mais voici un exemple simple :

int i = 1;
while (i <= 3)
{
    int j = 1;
    while (j <= 2)
    {
        System.out.println("i = " + i + ", j = " + j);
        j++;
    }
    i++;
}

// i = 1, j = 1
// i = 1, j = 2
// i = 2, j = 1
// i = 2, j = 2
// i = 3, j = 1
// i = 3, j = 2

Nous détaillerons les boucles imbriquées dans deux ou trois leçons, je voulais juste vous faire un peu peur :)

Boucle infinie

The while loop in real life: While Barney is in the bar — Moe throws him out. But Barney always returns... The condition never changes = infinite loop!

Parfois, les boucles se terminent, et parfois — elles vivent pour toujours.

while (true)
{
    System.out.println("Je suis éternel !");
}

Elle est rare, généralement pour des traitements en arrière-plan (par exemple, le fonctionnement d’un serveur), mais elle existe en pratique.

5. Éviter les bêtises : erreurs fréquentes avec while

En programmation, une boucle — c’est comme l’électricité : c’est génial, mais il faut connaître les règles de sécurité.

Problème 1 : boucle infinie par inattention

Très souvent, les débutants oublient de mettre à jour la variable dont dépend la condition. Résultat : la boucle tourne « indéfiniment », et il faut arrêter le programme de force (par exemple avec Ctrl + C).

int i = 1;
while (i <= 5)
{
    System.out.println(i);
    // i++;  // Oups ! On a oublié d’incrémenter i
}

Problème 2 : condition mal définie

Parfois, le développeur se tire une balle dans le pied : la condition n’est jamais vraie. En conséquence, la boucle ne s’exécute pas du tout.

int i = 10;
while (i < 5)
{
    System.out.println(i); // Ce code ne s’exécutera jamais.
    i++;
}

Problème 3 : erreur de types de données

La condition d’une boucle doit toujours être une expression booléenne — c’est-à-dire que le résultat doit être true ou false.

int number = 5;
while (number) // Erreur ! Un boolean était attendu, pas un int.
{
    number--;
}
1
Mission
JAVA 25 SELF, niveau 4, leçon 1
Bloqué
Compte à rebours avant le lancement 🚀
Compte à rebours avant le lancement 🚀
1
Mission
JAVA 25 SELF, niveau 4, leçon 1
Bloqué
Déverrouillage du smartphone 📱
Déverrouillage du smartphone 📱
1
Mission
JAVA 25 SELF, niveau 4, leçon 1
Bloqué
Affichage des places au cinéma 🎞️
Affichage des places au cinéma 🎞️
1
Mission
JAVA 25 SELF, niveau 4, leçon 1
Bloqué
Suivi des dépenses pour le café ☕
Suivi des dépenses pour le café ☕
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION