Enhanced-for como utiliza-lo?

Boa tarde Pessoal

Estou começando estudar agora Java e gostaria de saber,
como o enhanced-for percorre uma array de que forma ele faz isso?

Agradeço a atenção

Marcos

1 curtida

café pequeno.

http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/EnhancedForDemo.java

1 curtida

List<Pessoa> pessoas = new ArrayList<Pessoa>();
//popula a lista

for(Pessoa p : pessoas) {
String nome = p.getNome();
System.out.print(nome);
}

[quote=Marcris]Boa tarde Pessoal

Estou começando estudar agora Java
[/quote]
Continue mandando suas dúvidas para o fórum do GUJ, isto irá te ajudar progressivamente!

Vou fazer uma rápida alusão ao for convencional através do exemplo do cálculo da tabuada, n representa a coluna da tabuada, exemplo: tabuada do 1; do 2, do 10 e assim por diante:

int n = 10; for (int i = 1; i <= n; i++) { System.out.println(n + " x " + i + " = " + i * n); // Itera 10 vezes }

O mesmo exemplo só que usando o famoso “enhanced-for/foreach/for melhorado”:
[code] int[] tabuada = new int[10]; // Array com 10 posições

     tabuada[0] = 1;
     tabuada[1] = 2;
     tabuada[2] = 3;
     tabuada[3] = 4;
     tabuada[4] = 5;
     tabuada[5] = 6;
     tabuada[6] = 7;
     tabuada[7] = 8;
     tabuada[8] = 9;
     tabuada[9] = 10;
     
         int n = 10;

     for (int i : tabuada) { // Itera sobre todo o array tabuada
    	 System.out.println(n + " x " + i + " = " + i * n); 
	 }

[/code]

Esse é um muito mau exemplo por dois motivos:

  • complica o que é simples
  • pode induzir em erro sobre o que significa realmente o i no enhanced for.

Exemplo mais simples:

int array[] = {5, 10, 12, 15, 3, 7, 10, 9};

//for normal, o i toma o valor da posição
for (int i = 0; i < array.length; i++){
    if (array[i] > 10){  
        System.out.println(array[i]);
    }
}


//enhanced for. O x é o valor real presente no array
for (int x: array){
    if (x > 10){
        System.out.println(x);
    }
}

[quote=pmlm]Esse é um muito mau exemplo por dois motivos:

  • complica o que é simples
  • pode induzir em erro sobre o que significa realmente o i no enhanced for.

Exemplo mais simples:

[code]
int array[] = {5, 10, 12, 15, 3, 7, 10, 9};

//for normal, o i toma o valor da posição
for (int i = 0; i < array.length; i++){
if (array[i] > 10){
System.out.println(array[i]);
}
}

//enhanced for. O x é o valor real presente no array
for (int x: array){
if (x > 10){
System.out.println(x);
}
}
[/code][/quote]

rs…