0Pricing
Java Academy · Lezione

var nei cicli for

Faccia dedurre i tipi delle variabili del ciclo

var nei cicli for è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

var nei cicli

var funziona naturalmente come variabile di ciclo sia nei cicli for classici sia nei cicli for-each avanzati. Il compilatore deduce il tipo dal contesto del ciclo.

Contatore del ciclo for classico

In un ciclo for classico, var deduce il tipo del contatore dal suo inizializzatore. Qui var i = 0 deduce int.

public class Main {
    public static void main(String[] args) {
        for (var i = 0; i < 5; i++) {
            System.out.println("i = " + i);
        }
    }
}

for-each su una lista

In un ciclo for avanzato, var deduce il tipo dell'elemento dalla collezione. Qui ogni name è una String.

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var names = List.of("Ann", "Ben", "Cara");
        for (var name : names) {
            System.out.println(name);
        }
    }
}

for-each su un array

Lo stesso vale per gli array. Il tipo dell'elemento viene dedotto dal tipo dell'array.

public class Main {
    public static void main(String[] args) {
        var scores = new int[]{90, 85, 78};
        var total = 0;
        for (var s : scores) {
            total += s;
        }
        System.out.println("Total: " + total);
    }
}

Iterazione delle voci di una Map

Quando si iterano le voci di una mappa, var evita di dover scrivere il tipo prolisso Map.Entry.

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        var ages = Map.of("Ann", 30, "Ben", 25);
        for (var entry : ages.entrySet()) {
            System.out.println(entry.getKey() + " -> " + entry.getValue());
        }
    }
}

Metodi dell'elemento inferito

Poiché il tipo dell'elemento è noto, è possibile chiamarne i metodi all'interno del ciclo con un controllo completo in fase di compilazione.

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var words = List.of("red", "green");
        for (var w : words) {
            System.out.println(w.toUpperCase() + " (" + w.length() + ")");
        }
    }
}

Cicli annidati

È possibile usare var anche nei cicli annidati, mantenendo breve la dichiarazione di ogni contatore.

public class Main {
    public static void main(String[] args) {
        for (var i = 1; i <= 3; i++) {
            for (var j = 1; j <= 3; j++) {
                System.out.print(i * j + " ");
            }
            System.out.println();
        }
    }
}

Conteggio alla rovescia

Il tipo inferito segue l'inizializzatore, quindi un ciclo decrescente funziona allo stesso modo.

public class Main {
    public static void main(String[] args) {
        for (var n = 5; n >= 1; n--) {
            System.out.println(n);
        }
        System.out.println("Liftoff");
    }
}

var con contatori long

Se serve un contatore long, utilizzi un valore letterale long nell'inizializzatore, in modo che var inferisca il tipo più ampio.

public class Main {
    public static void main(String[] args) {
        var sum = 0L;
        for (var i = 1L; i <= 1000000L; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

Leggibilità nei cicli

I cicli sono uno dei contesti più chiari in cui usare var, perché il tipo è evidente dalla raccolta o dall'inizializzatore. Il codice rimane conciso e sicuro.

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var temps = List.of(20, 22, 19, 25);
        var max = Integer.MIN_VALUE;
        for (var t : temps) {
            if (t > max) max = t;
        }
        System.out.println("Max: " + max);
    }
}

Indice e valore insieme

È possibile combinare un ciclo indicizzato classico con var per leggere sia la posizione sia il valore di un elenco.

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var items = List.of("a", "b", "c");
        for (var i = 0; i < items.size(); i++) {
            System.out.println(i + ": " + items.get(i));
        }
    }
}

Verifica rapida

In for (var name : names), dove names è una List<String>, quale tipo ha name?

Riepilogo

È stato appreso come usare var nei cicli:

  • Cicli classici: inferisce il tipo del contatore dal relativo inizializzatore
  • for-each: inferisce il tipo dell'elemento dalla raccolta o dall'array
  • Evita tipi prolissi come Map.Entry
  • Utilizzi valori letterali long, ad esempio 0L, per i contatori di tipo long
  • I cicli sono un contesto ideale per var

Domande Frequenti

La lezione «var nei cicli for» è gratuita?

Sì — il testo completo di «var nei cicli for» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «var nei cicli for»?

Faccia dedurre i tipi delle variabili del ciclo Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «var nei cicli for»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Utilizzare var per le variabili locali
  2. Quando var migliora la leggibilità
  3. var nei cicli for
  4. Limitazioni di var
← Torna a Java Academy