I denne opplæringen vil vi lære om nestede sløyfer i C ++ ved hjelp av eksempler. Vi vil også lære om pause og fortsette i Nested Loop.
En sløyfe i en annen sløyfe kalles en nestet sløyfe. La oss ta et eksempel,
Anta at vi ønsker å gå gjennom hver dag i en uke i 3 uker.
For å oppnå dette kan vi lage en løkke for å gjenta tre ganger (3 uker). Og inne i sløyfen kan vi lage en ny sløyfe for å gjentas 7 ganger (7 dager). Slik kan vi bruke nestede løkker.
Eksempel: Nestet for 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; )
Produksjon
Uke: 1 dag: 1 dag: 2 dag: 3… uke: 2 dag: 1 dag: 2 dag: 3……
Vi kan lage nestede løkker med mens og gjør … mens vi er på en lignende måte.
Eksempel: Vise 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; )
Produksjon
* * * * * * * * * * * * * *
I dette programmet går den ytre sløyfen fra 1
til rader.
Den indre sløyfen går fra 1
til kolonner. Inne i den indre sløyfen trykker vi karakteren '*'
.
bryt og fortsett Inside Nested Loops
Når vi bruker et brudduttalelse inne i den indre sløyfen, avslutter den den indre sløyfen, men ikke den ytre sløyfen. For eksempel,
Eksempel: break Inside Nested Loops
#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; ) ) )
Produksjon
Uke: 1 dag: 1 dag: 2 … uke: 2 uke: 3 dag: 1 dag: 2 …
Dette programmet kjører ikke den indre sløyfen når verdien på i er, 2
dvs. at den ikke skriver ut dagene i 2. uke. Den ytre sløyfen som skriver ut ukene er upåvirket.
Tilsvarende, når vi bruker en fortsettelsesuttalelse inne i den indre sløyfen, hopper den bare over gjeldende iterasjon av den indre sløyfen. Den ytre sløyfen er upåvirket. For eksempel,
Eksempel: fortsett inne i nestede looper
#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; ) ) )
Produksjon
Uke: 1 dag: 2 dag: 4 dag: 6 uke: 2 dag: 2 dag: 4 dag: 6 uke: 3 dag: 2 dag: 4 dag: 6
Dette programmet skriver bare ut de dagene som er jevne.
Når dager_in_uke er merkelige, continue
hopper utsagnet over iterasjonen av den indre sløyfen.