Buclă imbricată în Java (cu exemple)

În acest tutorial, vom afla despre buclele imbricate în Java cu ajutorul exemplelor.

Dacă există o buclă în corpul altei bucle, aceasta se numește buclă imbricată. Iată un exemplu de forbuclă imbricată .

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Aici, folosim o forbuclă în interiorul altei forbucle.

Putem folosi bucla imbricată pentru a itera în fiecare zi a unei săptămâni timp de 3 săptămâni.

În acest caz, putem crea o buclă pentru a itera de trei ori (3 săptămâni). Și, în interiorul buclei, putem crea o altă buclă pentru a itera de 7 ori (7 zile).

Exemplul 1: Java imbricat pentru buclă

 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); ) ) ) )

Ieșire

Săptămâna: 1 zi: 1 zi: 2 zi: 3…. Săptămâna: 2 Ziua: 1 Ziua: 2 Ziua: 3….….

În exemplul de mai sus, bucla exterioară repetă de 3 ori și imprimă 3 săptămâni. Și bucla interioară repetă de 7 ori și imprimă cele 7 zile.

De asemenea, putem crea bucle imbricate cu while și do … while într-un mod similar.

Notă : Este posibil să utilizați un tip de buclă în corpul altei bucle. De exemplu, putem pune o forbuclă în interiorul whilebuclei.

Exemplul 2: Java pentru buclă în bucla 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; ) ) )

Ieșire :

Săptămâna: 1 zi: 1 zi: 2 zi: 3…. Săptămâna: 2 Ziua: 1 Ziua: 2 Ziua: 3….….

Aici puteți vedea că ieșirea atât a Exemplului 1, cât și a Exemplului 2 este aceeași.

Exemplul 3: bucle imbricate Java pentru a crea un model

Putem folosi bucla imbricată în Java pentru a crea modele precum piramida completă, jumătate piramidă, piramidă inversată și așa mai departe.

Iată un program pentru a crea un model de semipiramidă folosind bucle imbricate.

 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(""); ) ) )

Ieșire

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Pentru a afla mai multe, vizitați programul Java pentru a imprima piramida și modelele.

rupeți și continuați în interiorul buclelor imbricate

Când folosim o breakdeclarație în interiorul buclei interioare, aceasta termină bucla interioară, dar nu și bucla exterioară. De exemplu,

 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); ) ) ) )

Ieșire

Săptămâna: 1 zi: 1 zi: 2…. Săptămâna: 2 Săptămâna: 3 Ziua: 1 Ziua: 2….….

În exemplul de mai sus, am folosit instrucțiunea break în interiorul forbuclei interioare . Aici, programul omite bucla când i este 2 .

Prin urmare, zilele din săptămâna 2 nu sunt tipărite. Cu toate acestea, bucla exterioară care imprimă săptămâna nu este afectată.

În mod similar, atunci când folosim o continuedeclarație în interiorul buclei interioare, aceasta omite doar iterația curentă a buclei interioare. Bucla exterioară nu este afectată. De exemplu,

 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); ) ) ) )

Ieșire

 Săptămâna: 1 Zile: 2 Zile: 4 Zile: 6 Săptămâna: 2 Zile: 2 Zile: 4 Zile: 6 Săptămâna: 3 Zile: 2 Zile: 4 Zile: 6

În exemplul de mai sus, am folosit instrucțiunea continue în interiorul buclei interioare. Observați codul,

 if(j % 2 != 0) ( continue; )

Aici, continueinstrucțiunea este executată atunci când valoarea lui j este impar. Prin urmare, programul tipărește doar acele zile care sunt uniforme.

Putem vedea că continueafirmația a afectat doar bucla interioară. Bucla exterioară funcționează fără nicio problemă.

Articole interesante...