Dans ce didacticiel, nous allons découvrir les boucles imbriquées en Java à l'aide d'exemples.
Si une boucle existe dans le corps d'une autre boucle, on l'appelle une boucle imbriquée. Voici un exemple de la forboucle imbriquée .
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Ici, nous utilisons une forboucle dans une autre forboucle.
Nous pouvons utiliser la boucle imbriquée pour parcourir chaque jour d'une semaine pendant 3 semaines.
Dans ce cas, nous pouvons créer une boucle à itérer trois fois (3 semaines). Et, à l'intérieur de la boucle, nous pouvons créer une autre boucle pour itérer 7 fois (7 jours).
Exemple 1: Java imbriqué pour la boucle
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )
Production
Semaine: 1 Jour: 1 Jour: 2 Jour: 3…. Semaine: 2 Jour: 1 Jour: 2 Jour: 3….….
Dans l'exemple ci-dessus, la boucle externe est itérée 3 fois et imprime 3 semaines. Et, la boucle interne effectue 7 itérations et imprime les 7 jours.
Nous pouvons également créer des boucles imbriquées avec while et do… while de la même manière.
Remarque : Il est possible d'utiliser un type de boucle à l'intérieur du corps d'une autre boucle. Par exemple, nous pouvons mettre une forboucle à l'intérieur de la whileboucle.
Exemple 2: Java for boucle à l'intérieur de la boucle while
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )
Sortie :
Semaine: 1 Jour: 1 Jour: 2 Jour: 3…. Semaine: 2 Jour: 1 Jour: 2 Jour: 3….….
Ici, vous pouvez voir que la sortie de l' exemple 1 et de l' exemple 2 est la même.
Exemple 3: boucles imbriquées Java pour créer un modèle
Nous pouvons utiliser la boucle imbriquée en Java pour créer des modèles tels que pyramide complète, demi-pyramide, pyramide inversée, etc.
Voici un programme pour créer un motif en demi-pyramide à l'aide de boucles imbriquées.
class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )
Production
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Pour en savoir plus, visitez le programme Java pour imprimer la pyramide et les motifs.
interrompre et continuer à l'intérieur des boucles imbriquées
Lorsque nous utilisons une breakinstruction à l'intérieur de la boucle interne, elle termine la boucle interne mais pas la boucle externe. Par exemple,
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )
Production
Semaine: 1 Jour: 1 Jour: 2…. Semaine: 2 Semaine: 3 Jour: 1 Jour: 2….….
Dans l'exemple ci-dessus, nous avons utilisé l'instruction break à l'intérieur de la forboucle interne . Ici, le programme saute la boucle lorsque i vaut 2 .
Par conséquent, les jours de la semaine 2 ne sont pas imprimés. Cependant, la boucle externe qui imprime la semaine n'est pas affectée.
De même, lorsque nous utilisons une continueinstruction à l'intérieur de la boucle interne, elle ignore l'itération actuelle de la boucle interne uniquement. La boucle externe n'est pas affectée. Par exemple,
class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )
Production
Semaine: 1 jours: 2 jours: 4 jours: 6 semaine: 2 jours: 2 jours: 4 jours: 6 semaine: 3 jours: 2 jours: 4 jours: 6
Dans l'exemple ci-dessus, nous avons utilisé l'instruction continue dans la boucle for interne. Notez le code,
if(j % 2 != 0) ( continue; )
Ici, l' continueinstruction est exécutée lorsque la valeur de j est impaire. Par conséquent, le programme n'imprime que les jours pairs.
Nous pouvons voir que l' continueinstruction n'a affecté que la boucle interne. La boucle externe fonctionne sans aucun problème.








