freeCodeCamp/guide/portuguese/java/loops/for-each-loop/index.md

2.6 KiB
Raw Blame History

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.