2.6 KiB
title | localeTitle |
---|---|
For Each Loop | Para cada loop |
Para cada loop
Também chamado for
loop for
aprimorado, é uma maneira extremamente útil e simples de iterar sobre cada item em uma coleção, matriz ou qualquer objeto que implemente a interface Iterable
.
for (object : iterable)
{
// Statements
}
O loop é lido como "para cada elemento no iterable
(pode ser um array, colecionável etc.)". O tipo de object
deve corresponder ao tipo de elemento do iterable
.
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int numbers : number_list)
{
System.out.print(numbers + " ");
// Iterated 10 times, numbers 0,1,2...9
}
Saída:
0 1 2 3 4 5 6 7 8 9
: rocket: Run Code
Comparando isso com o tradicional for
laços:
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for(int i=0;i < number_list.length;i++)
{
System.out.print(number_list[i]+" ");
// Iterated 10 times, numbers 0,1,2...9
}
Saída:
0 1 2 3 4 5 6 7 8 9
: rocket: Run Code
Ambas as partes de trechos de código acima fazem o mesmo trabalho, no entanto, claramente, para cada loop oferece vantagens em facilitar a iteração e o acesso a elementos de uma coleção (array, no nosso caso).
Com os loops forçados aprimorados, não precisamos mais mencionar os pontos inicial e final para o loop, reduzindo assim os erros de OutofBounds. A necessidade de contadores de loop e a indexação manual são removidas e a legibilidade do código é aprimorada.
É importante observar que fazer alterações na variável de iteração para loops forçados aprimorados dentro do loop não causa alterações nos elementos da coleção original.
Os loops forçados aprimorados também podem ser usados com matrizes multidimensionais ou outras coleções Java. Um exemplo de seu uso com matrizes multidimensionais é mostrado abaixo:
int number_list_new[][]={ { 0, 1, 2},
{ 3, 4, 5},
{ 6, 7, 8} };
// Because 2d arrays are implemented as "arrays of arrays",the first iteration variable iterates
// through 3 such arrays(that is, the 3 rows of testarr[][])
for(int i[] : number_list_new)
{
for(int j : i){
System.out.print(j+" ");
}
}
Saída:
0 1 2 3 4 5 6 7 8
: rocket: Run Code
Nos trechos de código acima, number_list
é uma matriz. Se você não sabe o que é isso, não se preocupe com isso. Uma matriz é um objeto contêiner que contém um número fixo de valores de um único tipo, mas mais sobre isso depois.