Con il ciclo for-each in Java è possibile iterare array o col­le­zio­ni in modo più rapido e sicuro, evitare errori e mi­glio­ra­re la leg­gi­bi­li­tà del codice. In questo tutorial ti spie­ghia­mo più in dettaglio la struttura e i vantaggi del metodo for-each mo­stran­do­ti come puoi uti­liz­za­re questo ciclo nel tuo codice.

A cosa serve il ciclo for-each in Java?

Il ciclo for-each è uti­liz­za­to in molti scenari in cui gli svi­lup­pa­to­ri Java devono lavorare con gli array. Ad esempio, è uti­liz­za­to spesso per l’output o la ricerca di de­ter­mi­na­ti elementi in un array. Inoltre, è possibile uti­liz­za­re il ciclo for-each per l’ite­ra­zio­ne di elementi in una lista im­ple­men­ta­ta come ArrayList. In ogni ite­ra­zio­ne puoi quindi ef­fet­tua­re ma­ni­po­la­zio­ni au­to­ma­ti­che con i consueti operatori Java senza dover scrivere un’istru­zio­ne separata per ciascun elemento.

Rispetto al ciclo for in Java, con il metodo for-each non è ne­ces­sa­rio tenere conto dell’indice o delle di­men­sio­ni dell’array. In questo modo si evita che un indice sia al di fuori dell’in­ter­val­lo valido. Il ciclo for-each utilizza in­ter­na­men­te un iteratore per ri­chia­ma­re ciascun elemento dell’array o della lista uno dopo l’altro. L’iteratore provvede al conteggio in au­to­ma­ti­co facendo scorrere l’array o la lista e termina il ciclo una volta fatti passare tutti gli elementi.

Se invece hai bisogno di accedere all’indice, ad esempio per mo­di­fi­ca­re l’elemento pre­ce­den­te o suc­ces­si­vo, potrebbe essere più utile ricorrere al ciclo for o al ciclo while.

La sintassi del ciclo for-each in Java

La sintassi fon­da­men­ta­le di un ciclo for-each in Java è la seguente:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: nome dell’array o della col­le­zio­ne
  • item: ogni elemento dell’array o della col­le­zio­ne viene assegnato a questa variabile.
  • type: tipo di dati dell’array o della col­le­zio­ne

All’interno del ciclo, il blocco di codice viene eseguito per ogni ite­ra­zio­ne.

Esempi di utilizzo del ciclo for-each in Java

Nelle parti seguenti ti mo­stre­re­mo come uti­liz­za­re il metodo for-each per l’output a schermo e le ope­ra­zio­ni arit­me­ti­che.

Output di elementi sulla console

Il ciclo for-each ti permette di vi­sua­liz­za­re sullo schermo ogni elemento di un array o di una col­le­zio­ne.

class Main {
    public static void main(String[] args) {
        // array
        String[] names = {"Sophie", "Tim", "Anna", "John", "Melissa"};
        // for each loop
        for (String name: names) {
            System.out.println(name);
        }
    }
}
Java

La console mostra il seguente output:

Sophie
Tim
Anna
John
Melissa
Java

In modo analogo è possibile ottenere l’output degli elementi di una lista. Il codice sorgente per il ciclo rimane invariato.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // list
        ArrayList<String> names = new ArrayList<String>();
        names.add( "Sophie" );
        names.add( "Tim" );
        names.add( "Anna" );
        names.add( "John" );
        names.add( "Melissa" );
        // for each loop
        for(String name: names){
            System.out.println(name);
        }
    }
}
Java

Per ciascun nome nella lista viene generata una stringa:

Sophie
Tim
Anna
John
Melissa
Java

Calcolo del totale degli elementi di un array o di una col­le­zio­ne

Con il metodo for-each in Java è possibile eseguire ope­ra­zio­ni arit­me­ti­che, come l’addizione di elementi di un array o di una lista, in modo facile e veloce. Gli operatori sono collegati all’interno del blocco di codice del ciclo tramite la variabile che funge da se­gna­po­sto per ciascun elemento.

class Main {
    public static void main(String[] args) {
        // array
        int[] numbers = {10, 34, 7, 19, -28};
        int sum = 0;
        // addition
        for (int number: numbers) {
            sum += number;
        }
        System.out.println("Result = " + sum);
    }
}
Java

I numeri dell’array vengono sommati uno dopo l’altro alla variabile sum, pre­ce­den­te­men­te di­chia­ra­ta al di fuori del ciclo. Come risultato si ottiene il seguente output:

Result = 42
Java
Vai al menu prin­ci­pa­le