C ++ Buclă imbricată (cu exemple)

În acest tutorial, vom afla despre buclele imbricate în C ++ cu ajutorul exemplelor. De asemenea, vom învăța despre pauză și vom continua în Nested Loop.

O buclă într-o altă buclă se numește buclă imbricată. Să luăm un exemplu,

Să presupunem că vrem să parcurgem fiecare zi a săptămânii timp de 3 săptămâni.

Pentru a realiza acest lucru, 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). Acesta este modul în care putem folosi bucle imbricate.

Exemplu: imbricat pentru buclă

 // C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )

Ieșire

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

Putem crea bucle imbricate cu while și do … while într-un mod similar.

Exemplu: Afișarea unui model

 // C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )

Ieșire

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

În acest program, bucla exterioară iterează de 1la rânduri.

Bucla interioară iterează de 1la coloane. În interiorul buclei interioare, imprimăm caracterul '*'.

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

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

Exemplu: spargeți buclele imbricate

 #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) ) )

Ieșire

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

Acest program nu rulează bucla interioară când valoarea lui i este 2adică nu imprimă zilele celei de-a doua săptămâni. Bucla exterioară care imprimă săptămânile nu este afectată.

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

Exemplu: continuați în interiorul buclelor imbricate

 #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j % 2 != 0) ( continue; ) cout << " Day:" << j << endl; ) ) )

Ieșire

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

Acest program tipărește doar acele zile care sunt uniforme.

Ori de câte ori days_in_week este ciudat, continuedeclarația omite acea iterație a buclei interioare.

Articole interesante...