Lógica e Algoritmos com Java

24 - ForEach

O laço foreach, também conhecido como "enhanced for loop" (laço for aprimorado), foi introduzido no Java 5 e é uma maneira mais simples de iterar sobre arrays e coleções. Ele permite percorrer os elementos de uma coleção sem precisar de um índice explícito.

1. Sintaxe do Laço foreach

A sintaxe básica do foreach é a seguinte:


for (Tipo elemento : coleção) {
    // Corpo do loop - ações a serem realizadas para cada elemento
}
    
  • Tipo: O tipo de dados dos elementos da coleção (por exemplo, int, String, etc.).
  • elemento: O nome da variável que representa o elemento atual da coleção durante a iteração.
  • coleção: O array ou coleção que será percorrido.

2. Como Funciona o Laço foreach?

O laço foreach percorre cada elemento de uma coleção ou array e executa um conjunto de instruções para cada um desses elementos.

Exemplo de Laço foreach com Array de Strings:


public class ExemploForeach {
    public static void main(String[] args) {
        String[] nomes = {"Carlos", "Maria", "João"};

        // Usando o laço foreach para percorrer o vetor de nomes
        for (String nome : nomes) {
            System.out.println(nome);  // Exibe cada nome na tela
        }
    }
}
    

Explicação: No exemplo acima, o laço foreach percorre o vetor nomes. Para cada iteração, a variável nome recebe o valor do próximo nome no vetor e imprime esse nome no console.

3. Vantagens do Laço foreach

  • Simplicidade: O código fica mais simples e legível, sem a necessidade de controlar índices manualmente.
  • Menos erros: Como o índice não é usado, diminui-se o risco de acessar um índice inválido ou fora do intervalo do vetor.
  • Leitura mais clara: O código expressa de forma direta a intenção de percorrer uma coleção ou array.

4. Limitações do Laço foreach

  • Não permite modificar o índice ou o elemento diretamente: Não podemos alterar o índice da coleção nem modificar diretamente os elementos (a menos que a coleção seja mutável).
  • Não funciona com índices em coleções não ordenadas: O foreach é mais indicado para coleções em que a ordem dos elementos não é importante, como vetores e listas ordenadas.

5. Exemplo de Laço foreach com Array de Números


public class ExemploForeachNumeros {
    public static void main(String[] args) {
        int[] numeros = {1, 2, 3, 4, 5};

        // Usando o laço foreach para percorrer o vetor de números
        for (int numero : numeros) {
            System.out.println("Número: " + numero);  // Exibe cada número
        }
    }
}
    

Explicação: No exemplo acima, o vetor numeros é percorrido com o laço foreach. Para cada iteração, o valor do elemento atual é atribuído à variável numero, que é então exibido no console.

6. Saída Esperada

Quando o código é executado e o vetor de números é percorrido, a saída será:

Número: 1
Número: 2
Número: 3
Número: 4
Número: 5