Boucles Imbriquees


🔁🔁 Les boucles imbriquĂ©es en Java

Une boucle imbriquĂ©e (ou boucle dans une boucle) permet de rĂ©pĂ©ter un ensemble d’instructions Ă  l’intĂ©rieur d’une autre boucle. C’est trĂšs utile pour travailler avec des tableaux Ă  plusieurs dimensions, afficher des grilles, ou rĂ©pĂ©ter des structures complexes.


đŸ§± Structure d’une boucle imbriquĂ©e

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        // Instructions exécutées à chaque combinaison de i et j
    }
}

💡 Ici, pour chaque valeur de i, la boucle j s’exĂ©cute complĂštement.


🔂 Exemple : afficher une grille

for (int ligne = 0; ligne < 3; ligne++) {
    for (int col = 0; col < 5; col++) {
        System.out.print("* ");
    }
    System.out.println(); // retour Ă  la ligne
}

🔎 RĂ©sultat :

* * * * *  
* * * * *  
* * * * *  

💡 Comment ça marche ?

lignecolAffichage
00→4* * * * *
10→4* * * * *
20→4* * * * *

👉 La boucle intĂ©rieure se termine Ă  chaque tour de la boucle extĂ©rieure.


🎯 Quand utiliser des boucles imbriquĂ©es ?

Utilise-les pour :

  • Parcourir des tableaux Ă  deux dimensions
  • CrĂ©er des formes, grilles ou tableaux
  • Effectuer des comparaisons multiples ou des comptages croisĂ©s

🔁 Exemple : tableau à 2 dimensions

int[][] matrice = {
    {1, 2, 3},
    {4, 5, 6}
};

for (int i = 0; i < matrice.length; i++) {
    for (int j = 0; j < matrice[i].length; j++) {
        System.out.print(matrice[i][j] + " ");
    }
    System.out.println();
}

🔎 Affiche :

1 2 3  
4 5 6

⚠ Attention

  • Les boucles imbriquĂ©es peuvent ĂȘtre coĂ»teuses en performance si trop profondes (ex : triple ou quadruple boucle).
  • Toujours bien nommer tes variables (i, j, k, etc.) pour garder ton code lisible.
  • Ne pas oublier les retours Ă  la ligne (System.out.println()) si tu fais de l’affichage.

🧠 À retenir

  • Une boucle imbriquĂ©e est une boucle dans une autre boucle.
  • La boucle intĂ©rieure s’exĂ©cute entiĂšrement Ă  chaque tour de la boucle extĂ©rieure.
  • TrĂšs utile pour les grilles, matrices, et structures rĂ©pĂ©titives.

đŸ”č Exercice 1 : Grille de * avec deux for

Utilise deux boucles for imbriquées pour afficher une grille de 4 lignes et 6 colonnes remplie de *.

public class Exo1 {
    public static void main(String[] args) {
        // Boucle extérieure : lignes
        for (int i = 0; i < 4; i++) {
            // Boucle intérieure : colonnes
            for (int j = 0; j < 6; j++) {
                System.out.print("* ");
            }
            System.out.println(); // Retour Ă  la ligne
        }
    }
}

Sortie attendue

* * * * * *  
* * * * * *  
* * * * * *  
* * * * * *  

đŸ”č Exercice 2 : Afficher une matrice de nombres

CrĂ©e une matrice 2D d’entiers et affiche son contenu ligne par ligne avec deux boucles imbriquĂ©es.

public class Exo2 {
    public static void main(String[] args) {
        int[][] matrice = {
            {10, 20},
            {30, 40},
            {50, 60}
        };

        // Parcours de la matrice
        for (int i = 0; i < matrice.length; i++) {
            for (int j = 0; j < matrice[i].length; j++) {
                System.out.print(matrice[i][j] + " ");
            }
            System.out.println();
        }
    }
}

Sortie attendue

10 20  
30 40  
50 60

đŸ”č Exercice 3 : Triangle d’étoiles croissant

Utilise des boucles imbriquĂ©es pour afficher un triangle d’étoiles. La premiĂšre ligne contient 1 Ă©toile, la deuxiĂšme 2, etc.

public class Exo3 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

Sortie attendue

*  
**  
***  
****  
*****

đŸ§© DĂ©fi visuel : Dessiner un damier # et .

Affiche un damier de 6 lignes par 6 colonnes, avec des # et . en alternance (comme un échiquier).

public class DefiDamier {
    public static void main(String[] args) {
        for (int ligne = 0; ligne < 6; ligne++) {
            for (int col = 0; col < 6; col++) {
                if ((ligne + col) % 2 == 0) {
                    System.out.print("# ");
                } else {
                    System.out.print(". ");
                }
            }
            System.out.println(); // Retour Ă  la ligne
        }
    }
}

Sortie attendue

# . # . # .  
. # . # . #  
# . # . # .  
. # . # . #  
# . # . # .  
. # . # . #  

🎯 Objectif

  • Utiliser deux boucles imbriquĂ©es
  • Alterner les symboles selon la position dans la grille
  • S’appuyer sur l’expression (ligne + col) % 2 pour alterner