Skip to content

🔸4🔸Boucles

Boucle while

La boucle while s’exécute tant que sa condition est vraie :

public class ExempleWhile {
    public static void main(String[] args) {
        int compteur = 0;

        while (compteur < 5) {
            System.out.println("Compteur: " + compteur);
            compteur++;
        }

        // Exemple avec validation
        int nombre = 100;
        while (nombre > 1) {
            if (nombre % 2 == 0) {
                nombre = nombre / 2;
            } else {
                nombre = nombre * 3 + 1;
            }
            System.out.println("Nombre actuel: " + nombre);
        }
    }
}

Boucle do-while

La boucle do-while s’exécute au moins une fois :

public class ExempleDoWhile {
    public static void main(String[] args) {
        int compteur = 0;

        do {
            System.out.println("Itération: " + compteur);
            compteur++;
        } while (compteur < 3);

        // Exemple avec accumulation
        int somme = 0;
        int nombre = 1;
        do {
            somme += nombre;
            nombre++;
        } while (nombre <= 5);
        System.out.println("Somme finale: " + somme);
    }
}

Boucle for

Boucle for classique :

public class ExempleFor {
    public static void main(String[] args) {
        // Boucle simple
        for (int i = 0; i < 5; i++) {
            System.out.println("Index: " + i);
        }

        // Boucle avec pas différent
        for (int i = 0; i <= 10; i += 2) {
            System.out.println("Nombre pair: " + i);
        }

        // Boucle décroissante
        for (int i = 5; i > 0; i--) {
            System.out.println("Compte à rebours: " + i);
        }
    }
}

Boucle for-each :

public class ExempleForEach {
    public static void main(String[] args) {
        // Avec un tableau
        int[] nombres = {1, 2, 3, 4, 5};
        for (int nombre : nombres) {
            System.out.println("Valeur: " + nombre);
        }

        // Avec une collection de chaînes
        String[] fruits = {"pomme", "banane", "orange"};
        for (String fruit : fruits) {
            System.out.println("Fruit: " + fruit);
        }
    }
}

Exemple pratique combiné

public class AnalyseNotes {
    public static void main(String[] args) {
        int[] notes = {85, 92, 78, 65, 88, 72};
        int somme = 0;
        int noteMax = Integer.MIN_VALUE;
        int noteMin = Integer.MAX_VALUE;

        // Utilisation de for-each pour le calcul
        for (int note : notes) {
            somme += note;
            noteMax = Math.max(noteMax, note);
            noteMin = Math.min(noteMin, note);
        }

        double moyenne = (double) somme / notes.length;

        // Utilisation de while pour l'analyse
        int i = 0;
        int notesSupMoyenne = 0;
        while (i < notes.length) {
            if (notes[i] > moyenne) {
                notesSupMoyenne++;
            }
            i++;
        }

        // Affichage des statistiques
        System.out.printf("Moyenne: %.2f%n", moyenne);
        System.out.printf("Note maximale: %d%n", noteMax);
        System.out.printf("Note minimale: %d%n", noteMin);
        System.out.printf("Nombre de notes supérieures à la moyenne: %d%n", notesSupMoyenne);

        // Utilisation de for pour afficher les notes avec leur statut
        for (int j = 0; j < notes.length; j++) {
            String statut = notes[j] >= moyenne ? "≥ moyenne" : "< moyenne";
            System.out.printf("Note %d: %d (%s)%n", j + 1, notes[j], statut);
        }
    }
}

Instructions de contrôle de boucle

public class ControleBoucles {
    public static void main(String[] args) {
        // Exemple de break
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break; // Sort de la boucle
            }
            System.out.println("Valeur: " + i);
        }

        // Exemple de continue
        for (int i = 0; i < 5; i++) {
            if (i == 2) {
                continue; // Passe à l'itération suivante
            }
            System.out.println("Nombre: " + i);
        }

        // Exemple avec étiquette (label)
        exterieur:
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (i == 1 && j == 1) {
                    break exterieur; // Sort des deux boucles
                }
                System.out.printf("i=%d, j=%d%n", i, j);
            }
        }
    }
}

Note

Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.