0Pricing
Java Academy · Aula

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 contadores long
  • 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.

Todas as aulas deste curso

  1. Usando var para Variáveis Locais
  2. Quando var Ajuda na Legibilidade
  3. var em Laços for
  4. Limitações de var
← Voltar para Java Academy