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 == 1
til i == rows
.
Den indre sløjfe gentager fra j == 1
til 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, 2
dvs. 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, continue
springer udsagnet over den iteration af den indre sløjfe.