Î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 1
la rânduri.
Bucla interioară iterează de 1
la 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 2
adică 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, continue
declarația omite acea iterație a buclei interioare.