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 ?
ligne | col | Affichage |
|---|---|---|
| 0 | 0â4 | * * * * * |
| 1 | 0â4 | * * * * * |
| 2 | 0â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) % 2pour alterner