Dúvida sobre for aprimorado

3 respostas
truespy

Olá pessoal estou começando agora no Java e me deparei com um for diferente não estou conseguindo compreender a idéia do codigo.
desde ja agradeço a colaboração do pessoal =)

int[] array = { 1, 2, 3, 4, 5 };

for( int temp : array ) //o que exatamente esta acontecendo aqui ?? se puderem me explicar de uma maneira facil seria uma boa pois ñ compreendi ainda isso
   System.out.println( "" + temp );

3 Respostas

ViniGodoy

Esse for equivale a:

int[] array = { 1, 2, 3, 4, 5 };  
  
for(int i = 0; i < array.length; i++) { 
    int temp = array[i];
    System.out.println( "" + temp ); 
}

Por isso, esse for é conhecido como "for each" (para cada). Ou seja, para cada elemento dentro de array, atribuímos ele na variável temp e fazemos uso dele.

victorwss

O compilador transforma o for aprimorado em um for comum.int array = new int[] {1, 2, 3, 4}; for (int i : array) { System.out.println(i); }O compilador transforma em:int array = new int[] {1, 2, 3, 4}; for ($c = 0; $c < array.length; $c++) { int i = array[$c]; { System.out.println(i); } }O mesmo ocorre com coisas que implementam a interface Iterable. O compilador cria o Iterator e o itera automaticamente sem que você veja.

Tchello

È também conhecido como “for each”.
Significa que a cada iteração, a variável temp representação um nó diferente do array, list, vetor que usou.
Ou seja, na primeira iteração ele representará o primeiro elemento, da segunda… o segundo e assim por diante.
Bem mais simples, não?

Abraços.

Criado 19 de outubro de 2008
Ultima resposta 19 de out. de 2008
Respostas 3
Participantes 4