var em Laços for
Infira os tipos das variáveis do laço
var em Laços for é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
var em laços
var funciona naturalmente como variável de laço tanto em laços for clássicos quanto em laços for aprimorados, usados para percorrer elementos. O compilador infere o tipo a partir do contexto do laço.
Contador de laço for clássico
Em um laço for clássico, var infere o tipo do contador a partir do inicializador. Aqui, var i = 0 infere int.
public class Main {
public static void main(String[] args) {
for (var i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
}
}for-each sobre uma lista
Em um laço for aprimorado, var infere o tipo do elemento a partir da coleção. Aqui, cada name é uma 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);
}
}
}Para cada em um vetor
O mesmo funciona para vetores. O tipo do elemento é inferido a partir do tipo do vetor.
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);
}
}Iterando pelas entradas de um mapa
Ao iterar pelas entradas de um mapa, var evita que você precise escrever o extenso tipo 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());
}
}
}Métodos do elemento inferido
Como o tipo do elemento é conhecido, você pode chamar os métodos dele dentro do laço, com verificação completa em tempo de compilação.
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() + ")");
}
}
}Laços aninhados
Você também pode usar var em laços aninhados, mantendo curta a declaração de cada contador.
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();
}
}
}Contagem regressiva
O tipo inferido segue o inicializador, portanto um laço decrescente funciona da mesma maneira.
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 com contadores longos
Se precisar de um contador long, use um literal long no inicializador para que var infira o tipo mais amplo.
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);
}
}Legibilidade em laços
Os laços são um dos lugares mais claros para usar var, porque o tipo é evidente a partir da coleção ou do inicializador. O código permanece conciso e seguro.
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);
}
}Índice e valor juntos
Você pode combinar um laço clássico indexado com var para ler tanto a posição quanto o valor de uma lista.
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ção rápida
Em for (var name : names), onde names é uma List<String>, qual é o tipo de name?
Recapitulação
Você aprendeu a usar var em laços:
- Laços clássicos: infere o tipo do contador a partir do inicializador
- Para cada: infere o tipo do elemento a partir da coleção ou do vetor
- Evita tipos extensos, como
Map.Entry - Use literais longos, como
0L, para contadoreslong - Os laços são um lugar ideal para usar
var
Perguntas Frequentes
A aula “var em Laços for” é grátis?
Sim — o texto completo de “var em Laços for” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “var em Laços for”?
Infira os tipos das variáveis do laço Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “var em Laços for”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.