Ciclo annidato in Java (con esempi)

In questo tutorial, impareremo a conoscere i loop nidificati in Java con l'aiuto di esempi.

Se un ciclo esiste all'interno del corpo di un altro ciclo, viene chiamato ciclo annidato. Ecco un esempio del forciclo annidato .

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

Qui stiamo usando un forciclo all'interno di un altro forciclo.

Possiamo usare il ciclo annidato per scorrere ogni giorno della settimana per 3 settimane.

In questo caso, possiamo creare un ciclo per iterare tre volte (3 settimane). E, all'interno del ciclo, possiamo creare un altro ciclo per iterare 7 volte (7 giorni).

Esempio 1: Java annidato per 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); ) ) ) )

Produzione

Settimana: 1 Giorno: 1 Giorno: 2 Giorno: 3…. Settimana: 2 Giorno: 1 Giorno: 2 Giorno: 3….….

Nell'esempio sopra, il ciclo esterno itera 3 volte e stampa 3 settimane. Inoltre, il ciclo interno itera 7 volte e stampa i 7 giorni.

Possiamo anche creare cicli annidati con while e do … in modo simile.

Nota : è possibile utilizzare un tipo di loop all'interno del corpo di un altro loop. Ad esempio, possiamo inserire un forloop all'interno del whileloop.

Esempio 2: ciclo Java for all'interno del ciclo while

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

Uscita :

Settimana: 1 Giorno: 1 Giorno: 2 Giorno: 3…. Settimana: 2 Giorno: 1 Giorno: 2 Giorno: 3….….

Qui puoi vedere che l'output sia dell'Esempio 1 che dell'Esempio 2 è lo stesso.

Esempio 3: loop annidati Java per creare un pattern

Possiamo usare il ciclo annidato in Java per creare modelli come piramide intera, mezza piramide, piramide invertita e così via.

Ecco un programma per creare uno schema a mezza piramide utilizzando cicli annidati.

 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(""); ) ) )

Produzione

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

Per saperne di più, visita il programma Java per stampare piramidi e motivi.

interrompere e continuare all'interno di cicli annidati

Quando usiamo breakun'istruzione all'interno del ciclo interno, termina il ciclo interno ma non il ciclo esterno. Per esempio,

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

Produzione

Settimana: 1 Giorno: 1 Giorno: 2…. Settimana: 2 Settimana: 3 Giorno: 1 Giorno: 2….….

Nell'esempio sopra, abbiamo usato l'istruzione break all'interno del forciclo interno . Qui, il programma salta il ciclo quando i è 2 .

Pertanto, i giorni della settimana 2 non vengono stampati. Tuttavia, il ciclo esterno che stampa la settimana rimane inalterato.

Allo stesso modo, quando usiamo continueun'istruzione all'interno del ciclo interno, salta solo l'iterazione corrente del ciclo interno. Il ciclo esterno non è influenzato. Per esempio,

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

Produzione

 Settimana: 1 giorni: 2 giorni: 4 giorni: 6 Settimana: 2 giorni: 2 giorni: 4 giorni: 6 Settimana: 3 giorni: 2 giorni: 4 giorni: 6

Nell'esempio precedente, abbiamo usato l'istruzione continue all'interno del ciclo for interno. Notare il codice,

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

Qui, l' continueistruzione viene eseguita quando il valore di j è dispari. Quindi, il programma stampa solo quei giorni pari.

Possiamo vedere che l' continueaffermazione ha influenzato solo il ciclo interno. Il loop esterno funziona senza problemi.

Articoli interessanti...