Com o loop for each do Java, pode percorrer matrizes ou coleções de forma mais rápida e segura, evitar erros e melhorar a le­gi­bi­li­dade do código. Neste tutorial, ex­pli­ca­mos a estrutura e as vantagens do método for each em detalhes e mostramos como usar o loop no seu código.

Para que serve o loop for each do Java?

O loop for each é utilizado em muitas situações em que os pro­gra­ma­do­res Java têm de trabalhar com matrizes. Por exemplo, uma uti­li­za­ção comum é a saída ou pesquisa de elementos es­pe­cí­fi­cos de uma matriz. O loop for each também pode ser utilizado para iterar através dos elementos de uma lista im­ple­men­tada como ArrayList. Em cada iteração, é possível realizar ma­ni­pu­la­ções au­to­má­ti­cas com os ope­ra­do­res Java comuns sem ter de escrever uma instrução separada para cada elemento.

Comparado com o loop for do Java, o método for each do Java não precisa con­si­de­rar o índice ou o tamanho da matriz. Isso evita que um índice esteja fora do intervalo válido. O loop for each utiliza in­ter­na­mente um iterador para abrir su­ces­si­va­mente cada elemento da matriz ou lista. O iterador conta au­to­ma­ti­ca­mente através da matriz ou lista e termina o loop quando todos os elementos tiverem sido per­cor­ri­dos.

No entanto, se precisar de aceder ao índice, por exemplo, para editar o elemento seguinte ou anterior, pode ser mais apro­pri­ado utilizar o ciclo for ou while.

A sintaxe do loop for each do Java

A sintaxe básica de um loop for each em Java é a seguinte:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: nome da matriz ou coleção
  • item: cada elemento da matriz ou coleção é atribuído a esta variável
  • type: tipo de dados da matriz ou coleção

Dentro do loop, o bloco de código é executado para cada iteração.

Exemplos de uti­li­za­ção do ciclo for each em Java

A seguir, mostramos como utilizar o método for each uti­li­zando saída no ecrã e operações arit­mé­ti­cas como exemplo.

Elementos de saída na consola

Usando o loop for each, pode mostrar cada elemento de uma matriz ou coleção no ecrã.

class Main {
    public static void main(String[] args) {
        // array
        String[] names = {"Sophie", "Tim", "Anna", "John", "Melissa"};
        // for each loop
        for (String name: names) {
            System.out.println(name);
        }
    }
}
Java

Na consola, obtemos o seguinte resultado:

Sophie
Tim
Anna
John
Melissa
Java

Da mesma forma, é possível obter os elementos de uma lista. O código-fonte do loop não muda.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // list
        ArrayList<String> names = new ArrayList<String>();
        names.add( "Sophie" );
        names.add( "Tim" );
        names.add( "Anna" );
        names.add( "John" );
        names.add( "Melissa" );
        // for each loop
        for(String name: names){
            System.out.println(name);
        }
    }
}
Java

É gerada uma cadeia para cada nome da lista:

Sophie
Tim
Anna
John
Melissa
Java

Calcular a soma dos elementos de uma matriz ou coleção

Operações arit­mé­ti­cas, como a soma de elementos de uma matriz ou lista, podem ser re­a­li­za­das de forma fácil e rápida com o método Java for each. Os ope­ra­do­res estão ligados à variável que serve como marcador de posição para cada elemento dentro do bloco de código do loop.

class Main {
    public static void main(String[] args) {
        // array
        int[] numbers = {10, 34, 7, 19, -28};
        int sum = 0;
        // addition
        for (int number: numbers) {
            sum += number;
        }
        System.out.println("Result = " + sum);
    }
}
Java

Os números da matriz são somados em sequência à variável suma, pre­vi­a­mente declarada fora do loop. O resultado é o seguinte:

Result = 42
Java

7682fef629688119d6d99355dfc72c53

Ir para o menu principal