C ++ kapslad slinga (med exempel)

I denna handledning lär vi oss om kapslade loopar i C ++ med hjälp av exempel. Vi kommer också att lära oss om paus och fortsätta i Nested Loop.

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 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). Så här kan vi använda kapslade öglor.

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 1till rader.

Den inre slingan itererar från 1till kolumner. 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,

Exempel: bryt inuti kapslade öglor

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

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,

Exempel: fortsätt inuti nestade öglor

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

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...