C ++ Nested Lop (med exempel)

I den här handledningen lär vi oss om kapslade loopar i C ++. Vi lär oss att använda kapslade för, medan och göra … medan loopar i ett program.

En slinga inom en annan slinga kallas en kapslad slinga. Låt oss ta ett exempel,

Antag att vi vill gå igenom varje veckodag i tre veckor.

För att uppnå detta kan vi skapa en kapslad slinga för att itera tre gånger (3 veckor). Och inuti slingan kan vi skapa en ny slinga för att itera it 7 gånger (7 dagar). Till exempel,

Exempel: Nestad för 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

 Vecka: 1 dag: 1 dag: 2 dag: 3 … vecka: 2 dag: 1 dag: 2 dag: 3… … 

Vi kan skapa kapslade öglor med medan och gör … medan på ett liknande sätt.

Exempel: Visa ett 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 det här programmet itererar den yttre slingan från i == 1till i == rows.

Den inre slingan itererar från j == 1till j == columns. Inuti den inre slingan skriver vi ut karaktären '*'.

bryta och fortsätt Inside Nested Loops

När vi använder ett brytuttal inuti den inre slingan avslutas den inre slingan men inte den yttre slingan. Till exempel,

 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

 Vecka: 1 dag: 1 dag: 2 … vecka: 2 vecka: 3 dag: 1 dag: 2 … 

Detta program kör inte den inre slingan när värdet på i är 2dvs det skrivs inte ut dagarna i den andra veckan. Den yttre slingan som skriver ut veckorna påverkas inte.

På samma sätt, när vi använder en fortsättningssats inuti den inre slingan, hoppar den bara över den aktuella iterationen av den inre slingan. Den yttre slingan är opåverkad. Till exempel,

 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

 Vecka: 1 dag: 2 dag: 4 dag: 6 vecka: 2 dag: 2 dag: 4 dag: 6 vecka: 3 dag: 2 dag: 4 dag: 6

Detta program skriver bara ut de dagar som är jämna.

När dagar_in_veckan är udda continuehoppar påståendet om iteration av den inre slingan.

Intressanta artiklar...