Java For Loop

1. Panoramica

In questo articolo, esamineremo un aspetto fondamentale del linguaggio Java: eseguire ripetutamente un'istruzione o un gruppo di istruzioni utilizzando un ciclo for .

2. Semplice per Loop

Un ciclo for è una struttura di controllo che ci consente di ripetere determinate operazioni incrementando e valutando un contatore di loop.

Prima della prima iterazione, il contatore del ciclo viene inizializzato, quindi viene eseguita la valutazione della condizione seguita dalla definizione del passo (di solito un semplice incremento).

La sintassi del ciclo for è:

for (initialization; Boolean-expression; step) statement;

Vediamolo in un semplice esempio:

for (int i = 0; i < 5; i++) { System.out.println("Simple for loop: i = " + i); }

L' inizializzazione , l'espressione booleana e il passaggio utilizzati nelle istruzioni for sono facoltativi. Ecco un esempio di un ciclo for infinito :

for ( ; ; ) { // Infinite for loop }

2.1. Etichettato per loop

Si possono anche avere l'etichetta per i loop. È utile se abbiamo cicli for annidati in modo da poter interrompere / continuare da un ciclo for specifico :

aa: for (int i = 1; i <= 3; i++) { if (i == 1) continue; bb: for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break aa; } System.out.println(i + " " + j); } }

3. Migliorato per Loop

A partire da Java 5, abbiamo un secondo tipo di ciclo for chiamato Enhanced for che semplifica l'iterazione su tutti gli elementi in un array o in una raccolta.

La sintassi del ciclo for migliorato è:

for(Type item : items) statement;

Poiché questo ciclo è semplificato rispetto al ciclo standard for, dobbiamo dichiarare solo due cose durante l'inizializzazione di un ciclo:

  1. L'handle per un elemento su cui stiamo attualmente iterando
  2. L'array / raccolta di origine che stiamo iterando

Pertanto, possiamo dire che: Per ogni elemento in items, assegna l'elemento alla variabile item ed esegui il corpo del ciclo .

Diamo un'occhiata al semplice esempio:

int[] intArr = { 0,1,2,3,4 }; for (int num : intArr) { System.out.println("Enhanced for-each loop: i = " + num); }

Possiamo usarlo per iterare su varie strutture di dati Java:

Dato un oggetto elenco elenco , possiamo iterarlo:

for (String item : list) { System.out.println(item); }

Allo stesso modo possiamo iterare su un set Set :

for (String item : set) { System.out.println(item); }

E, data una mappa della mappa , possiamo iterare anche su di essa:

for (Entry entry : map.entrySet()) { System.out.println( "Key: " + entry.getKey() + " - " + "Value: " + entry.getValue()); }

3.1. Iterable.forEach ()

A partire da Java 8, possiamo sfruttare i cicli for-each in un modo leggermente diverso. Ora abbiamo un metodo forEach () dedicato nell'interfaccia Iterable che accetta un'espressione lambda che rappresenta un'azione che vogliamo eseguire .

Internamente, delega semplicemente il lavoro al ciclo standard:

default void forEach(Consumer action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }

Diamo un'occhiata all'esempio:

List names = new ArrayList(); names.add("Larry"); names.add("Steve"); names.add("James"); names.add("Conan"); names.add("Ellen"); names.forEach(name -> System.out.println(name));

4. Conclusione

In questo breve tutorial, abbiamo esplorato il ciclo for di Java .

Come sempre, è possibile trovare esempi su GitHub.