Nestad slinga i Java (med exempel)

I den här handledningen lär vi oss om kapslade loopar i Java med hjälp av exempel.

Om det finns en slinga inuti en annan slinga kallas den en kapslad slinga. Här är ett exempel på den kapslade forslingan.

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Här använder vi en forslinga inuti en annan forslinga.

Vi kan använda den kapslade slingan för att itera igenom varje veckodag i 3 veckor.

I det här fallet kan vi skapa en slinga för att itera tre gånger (3 veckor). Och inuti slingan kan vi skapa en annan slinga för att itera it 7 gånger (7 dagar).

Exempel 1: Java kapslat för loop

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )

Produktion

Vecka: 1 dag: 1 dag: 2 dag: 3…. Vecka: 2 Dag: 1 Dag: 2 Dag: 3….….

I exemplet ovan upprepas den yttre slingan tre gånger och skrivs ut tre veckor. Och den inre slingan itererar 7 gånger och skriver ut de 7 dagarna.

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

Obs! Det är möjligt att använda en typ av slinga inuti kroppen på en annan slinga. Till exempel kan vi sätta en forslinga inuti whileslingan.

Exempel 2: Java för loop inuti while loop

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )

Utgång :

Vecka: 1 dag: 1 dag: 2 dag: 3…. Vecka: 2 Dag: 1 Dag: 2 Dag: 3….….

Här kan du se att utgången från både exempel 1 och exempel 2 är densamma.

Exempel 3: Java kapslade loopar för att skapa ett mönster

Vi kan använda den kapslade slingan i Java för att skapa mönster som full pyramid, halv pyramid, inverterad pyramid och så vidare.

Här är ett program för att skapa ett halvpyramidmönster med kapslade öglor.

 class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )

Produktion

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

För att lära dig mer, besök Java-programmet för att skriva ut pyramid och mönster.

bryta och fortsätt Inside Nested Loops

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

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )

Produktion

Vecka: 1 dag: 1 dag: 2…. Vecka: 2 Vecka: 3 Dag: 1 Dag: 2….….

I exemplet ovan har vi använt pausuttrycket inuti den inre forslingan. Här hoppar programmet över slingan när jag är 2 .

Följaktligen skrivs inte dagar för vecka 2 ut. Den yttre slingan som skriver ut veckan är dock opåverkad.

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

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )

Produktion

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

I exemplet ovan har vi använt fortsättningsuttrycket inuti det inre för slingan. Lägg märke till koden,

 if(j % 2 != 0) ( continue; )

Här continuekörs påståendet när värdet på j är udda. Programmet skriver därför bara ut de dagar som är jämna.

Vi kan se att continueuttalandet endast påverkat den inre slingan. Den yttre slingan fungerar utan problem.

Intressanta artiklar...