var w pętlach for
Wnioskuj typy zmiennych pętli
var w pętlach for to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.
var w pętlach
var działa naturalnie jako zmienna sterująca zarówno w klasycznych pętlach for, jak i w rozszerzonych pętlach for-each. Kompilator wnioskuje typ na podstawie kontekstu pętli.
Licznik klasycznej pętli for
W klasycznej pętli for var wnioskuje typ licznika na podstawie jego inicjalizatora. W tym przypadku var i = 0 powoduje wywnioskowanie typu int.
public class Main {
public static void main(String[] args) {
for (var i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
}
}Pętla for-each dla listy
W rozszerzonej pętli for var wnioskuje typ elementu na podstawie kolekcji. W tym przypadku każda zmienna name ma typ 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);
}
}
}Pętla for-each dla tablicy
To samo działa w przypadku tablic. Typ elementu jest wywnioskowywany z typu tablicy.
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);
}
}Iterowanie po wpisach mapy
Podczas iterowania po wpisach mapy var pozwala uniknąć zapisywania rozwlekłego typu 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());
}
}
}Metody wywnioskowane dla elementów
Ponieważ typ elementu jest znany, można wywoływać jego metody wewnątrz pętli, korzystając z pełnego sprawdzania na etapie kompilacji.
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() + ")");
}
}
}Pętle zagnieżdżone
Można również używać var w zagnieżdżonych pętlach, zachowując krótkie deklaracje poszczególnych liczników.
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();
}
}
}Odliczanie w dół
Wywnioskowany typ wynika z inicjalizatora, więc pętla zmniejszająca wartość działa w ten sam sposób.
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 z licznikami typu long
Jeśli potrzebny jest licznik typu long, należy użyć literału typu long w inicjalizatorze, aby var wywnioskował szerszy typ.
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);
}
}Czytelność pętli
Pętle są jednym z najbardziej przejrzystych miejsc do użycia var, ponieważ typ wynika bezpośrednio z kolekcji lub inicjalizatora. Kod pozostaje zwięzły i bezpieczny.
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);
}
}Indeks i wartość jednocześnie
Można połączyć klasyczną pętlę indeksowaną z var, aby odczytywać jednocześnie pozycję i wartość z listy.
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));
}
}
}Szybkie sprawdzenie
W wyrażeniu for (var name : names), w którym names jest typu List<String>, jakiego typu jest name?
Podsumowanie
Nauczyli się Państwo używać var w pętlach:
- Pętle klasyczne: typ licznika jest wywnioskowywany z jego inicjalizatora
- Pętla for-each: typ elementu jest wywnioskowywany z kolekcji lub tablicy
- Pozwala uniknąć rozwlekłych typów, takich jak
Map.Entry - Należy używać literałów typu long, na przykład
0L, w przypadku liczników typulong - Pętle są idealnym miejscem na użycie
var
Często zadawane pytania
Czy lekcja „var w pętlach for” jest bezpłatna?
Tak — pełny tekst „var w pętlach for” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „var w pętlach for”?
Wnioskuj typy zmiennych pętli Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „var w pętlach for”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.