Boucle imbriquée en Java (avec des exemples)

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.

Articles intéressants...