C ++ Nestet Lop (med eksempler)

I denne vejledning lærer vi om indlejrede sløjfer i C ++. Vi lærer at bruge indlejret til, mens og gøre … mens der er sløjfer i et program.

En sløjfe inden for en anden sløjfe kaldes en indlejret løkke. Lad os tage et eksempel,

Antag, at vi vil løbe igennem hver dag i en uge i 3 uger.

For at opnå dette kan vi oprette en indlejret løkke, der skal gentages tre gange (3 uger). Og inde i sløjfen kan vi oprette en anden sløjfe til at gentage 7 gange (7 dage). For eksempel,

Eksempel: Nestet til loop

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

Produktion

 Uge: 1 Dag: 1 Dag: 2 Dag: 3… Uge: 2 Dag: 1 Dag: 2 Dag: 3…… 

Vi kan skabe indlejrede sløjfer med mens og gør … mens det er på en lignende måde.

Eksempel: Visning af et mønster

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

Produktion

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

I dette program gentager den ydre sløjfe fra i == 1til i == rows.

Den indre sløjfe gentager fra j == 1til j == columns. Inde i den indre sløjfe udskriver vi tegnet '*'.

bryde og fortsætte Inside Nested Loops

Når vi bruger en bruderklæring inde i den indre sløjfe, slutter den den indre sløjfe, men ikke den ydre sløjfe. For eksempel,

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

Produktion

 Uge: 1 Dag: 1 Dag: 2… Uge: 2 Uge: 3 Dag: 1 Dag: 2… 

Dette program kører ikke den indre sløjfe, når værdien af ​​i er, 2dvs. at den ikke udskriver dagene i 2. uge. Den ydre løkke, der udskriver ugerne, er upåvirket.

På samme måde springer den kun den nuværende iteration af den indre sløjfe, når vi bruger en fortsat-sætning inde i den indre sløjfe. Den ydre sløjfe er upåvirket. For eksempel,

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

Produktion

 Uge: 1 Dag: 2 Dag: 4 Dag: 6 Uge: 2 Dag: 2 Dag: 4 Dag: 6 Uge: 3 Dag: 2 Dag: 4 Dag: 6

Dette program udskriver kun de dage, der er lige.

Når dage_in_week er ulige, continuespringer udsagnet over den iteration af den indre sløjfe.

Interessante artikler...