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 for
ciclo 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 for
ciclo all'interno di un altro for
ciclo.
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 for
loop all'interno del while
loop.
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 break
un'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 for
ciclo 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 continue
un'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' continue
istruzione viene eseguita quando il valore di j è dispari. Quindi, il programma stampa solo quei giorni pari.
Possiamo vedere che l' continue
affermazione ha influenzato solo il ciclo interno. Il loop esterno funziona senza problemi.