# Ciclo for-each in Java: sintassi ed esempi

Con il ciclo for-each in Java è possibile iterare **array o collezioni** in modo più rapido e sicuro, evitare errori e migliorare la leggibilità del codice. In questo tutorial ti spieghiamo più in dettaglio la struttura e i vantaggi del metodo for-each mostrandoti come puoi utilizzare questo ciclo nel tuo codice.

## A cosa serve il ciclo for-each in Java?

Il ciclo for-each è utilizzato in molti scenari in cui gli sviluppatori Java devono lavorare con gli array. Ad esempio, è utilizzato spesso per l’output o la ricerca di determinati elementi in un array. Inoltre, è possibile utilizzare il ciclo for-each per l’iterazione di elementi in una lista implementata come ArrayList. In ogni iterazione puoi quindi effettuare **manipolazioni automatiche** con i consueti [operatori Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-java/) senza dover scrivere un’istruzione separata per ciascun elemento.

Rispetto al [ciclo for in Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-in-java/), con il metodo for-each **non è necessario tenere conto dell’indice o delle dimensioni dell’array**. In questo modo si evita che un indice sia al di fuori dell’intervallo valido. Il ciclo for-each utilizza internamente un iteratore per richiamare ciascun elemento dell’array o della lista uno dopo l’altro. L’iteratore provvede al conteggio in automatico 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 modificare l’elemento precedente o successivo, potrebbe essere più utile ricorrere al **ciclo for** o al **ciclo while**.

## La sintassi del ciclo for-each in Java

La sintassi fondamentale di un ciclo for-each in Java è la seguente:

```Java
for (type item : array | collection) {
// code block
}
```

- `array/collection`: nome dell’array o della collezione
- `item`: ogni elemento dell’array o della collezione viene assegnato a questa variabile.
- `type`: tipo di dati dell’array o della collezione

All’interno del ciclo, il blocco di codice viene eseguito per ogni iterazione.

## Esempi di utilizzo del ciclo for-each in Java

Nelle parti seguenti ti mostreremo come utilizzare il metodo for-each per **l’output a schermo e le operazioni aritmetiche**.

### Output di elementi sulla console

Il ciclo for-each ti permette di **visualizzare sullo schermo** ogni elemento di un array o di una collezione.

```Java
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);
        }
    }
}
```

La console mostra il seguente output:

```Java
Sophie
Tim
Anna
John
Melissa
```

In modo analogo è possibile ottenere l’output degli elementi di una lista. Il [codice sorgente](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/codice-sorgente-cosa-si-nasconde-dietro-a-un-sito-web/) per il ciclo rimane invariato.

```Java
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);
        }
    }
}
```

Per ciascun nome nella lista viene generata una stringa:

```Java
Sophie
Tim
Anna
John
Melissa
```

### Calcolo del totale degli elementi di un array o di una collezione

Con il metodo for-each in Java è possibile eseguire operazioni aritmetiche, 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 **segnaposto per ciascun elemento**.

```Java
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);
    }
}
```

I numeri dell’array vengono sommati uno dopo l’altro alla variabile `sum`, precedentemente dichiarata al di fuori del ciclo. Come risultato si ottiene il seguente output:

```Java
Result = 42
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-each-in-java/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-each-in-java/) for AI/LLM consumption.