Introduzione al ciclo For-Each in Java
Per ogni ciclo è stato introdotto in Java a partire da JDK 5. Ha lo scopo di iterare in sequenza attraverso tutti gli elementi di una raccolta o di un array. È anche lì in altre lingue come C #, dove usa la parola chiave per-ciascuno. Tuttavia, Java usa la parola chiave "for" solo per implementare un ciclo per-a differenza di C # ma la sua sintassi differisce dalla convenzionale per un ciclo. Questo ciclo for-each è anche conosciuto come potenziato per loop in Java.
Sintassi
for(type iter_var : Collection) statement_block
La spiegazione per ciascuno dei termini usati sopra è la seguente:
- 'tipo' indica il tipo di dati degli oggetti di
- 'iter_var' indica il nome della variabile di iterazione che memorizza ogni valore della raccolta mentre ripetiamo il ciclo.
- 'Collection' specifica la Collection o l'array attraverso cui vogliamo iterare.
- 'statement-block' è l'insieme di istruzioni che vogliamo eseguire per ogni iterazione del ciclo.
È essenziale notare che il ciclo for-each accede in sequenza agli elementi collection / array dove memorizza il valore di ciascun elemento nella variabile di iterazione. Di seguito è riportato il diagramma di flusso del ciclo for-each.
Come hai notato, ci sono alcune sottili differenze tra loop for e for-each loop. For loop richiede il numero di iterazioni da specificare in anticipo. Tuttavia, questo non è il caso del ciclo for-each, poiché il ciclo scorre dal primo elemento all'ultimo elemento della raccolta / matrice e non necessita di specificare il numero di iterazioni.
Un punto importante da tenere a mente è che il tipo specificato nel ciclo for-each deve corrispondere al tipo degli elementi nella raccolta perché altrimenti ci saranno problemi di compatibilità.
Esempi
Per loop
Troviamo l'età media di un gruppo di persone che usano per il ciclo:
Codice
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
(
System.out.print(ages(i)+" "); sum += ages(i);
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Produzione:
Per ogni ciclo
Per trovare l'età media di un gruppo di persone che utilizzano un ciclo per ogni:
Codice
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" "); sum += x;
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Produzione:
L'output è lo stesso usando entrambi i loop come mostrato dalle figure sopra.
Foreach loop usando Break Statement
È possibile ridurre il numero di iterazioni del ciclo for-each usando un'istruzione break. Ad esempio, se vogliamo trovare la somma dei soli 5 primi elementi, possiamo usare l'istruzione break come segue:
Codice
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" ");
)
for (int x : ages)
(
if (ctr == 5) break; sum += x;
ctr += 1;
)
System.out.println("\nSum of age of first 5 people of the group = " + sum);
)
)
Produzione:
Nel ciclo for-each menzionato sopra, x è la variabile di iterazione che memorizza un elemento dell'array per iterazione che cambia nella successiva iterazione. Nella prima iterazione, x memorizza il primo elemento dell'array e l'ultimo elemento dell'array nell'ultima iterazione. A differenza del ciclo, dove accediamo agli elementi dell'array utilizzando l'indice, per ogni ciclo viene utilizzata la variabile di iterazione per accedere agli elementi.
È necessario prestare attenzione nell'uso di ciascun ciclo poiché la variabile di iterazione memorizza temporaneamente il valore dell'elemento array in quanto è di sola lettura e modificando il suo valore non si modifica l'array originale. Ciò contraddice per il ciclo in cui la modifica di un elemento modifica l'array originale.
Consideriamo un esempio in cui aggiungiamo 5 a ciascun elemento dell'array. Possiamo individuare la differenza nell'output nel seguente codice di esempio:
Per loop con condizioni diverse
Codice
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" "); ages(i)+= 5;
)
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" ");
)
)
)
Produzione:
L'output di for loop mostra l'aggiornamento dell'array originale
Ciclo foreach con condizioni diverse
Codice
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int x : ages)
(
System.out.print(x+" "); x += 5;
)
System.out.print("\nNew elements of the array are : "); for (int x : ages)
(
System.out.print(x+" ");
)
)
)
Produzione:
L'output del ciclo for-each non mostra alcun aggiornamento dell'array originale
Cose da ricordare su For-Each loop in java
- Il ciclo For-Each in Java viene utilizzato per scorrere gli elementi array / collection in una sequenza.
- Il ciclo For-Each in Java utilizza la variabile di iterazione per scorrere su una raccolta o una matrice di elementi.
- La modifica della variabile di iterazione non modifica l'array / raccolta originale in quanto è di sola lettura.
- Il tipo nel ciclo for-each deve corrispondere al tipo di array / elementi di raccolta originali.
- Il ciclo Foreach non richiede il numero di iterazioni da specificare in quanto scorre su tutti gli elementi della raccolta.
- È possibile interrompere il ciclo for-each usando un'istruzione break.
Articoli consigliati
Questa è una guida al ciclo For-Each in Java. Qui discutiamo del ciclo For-Each in Java con la sua implementazione del codice in diversi modi, ovvero con la dichiarazione break e con le varie condizioni. Puoi anche consultare i seguenti articoli per saperne di più -
- Stampa array in Java
- Loop nella programmazione Java
- Mentre Loop in Java
- Matrici 3D in Java
- Strumenti di distribuzione Java
- Matrici 3D in C ++
- Per Loop in C
- Matrici nella programmazione Java