Enhanced-for como utiliza-lo?

5 respostas
M

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

5 Respostas

aix

café pequeno.

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

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

for(Pessoa p : pessoas) {
String nome = p.getNome();
System.out.print(nome);
}
A
Marcris:
Boa tarde Pessoal

Estou começando estudar agora Java


Continue mandando suas dúvidas para o fórum do GUJ, isto irá te ajudar progressivamente!

e gostaria de saber, como o enhanced-for percorre uma array de que forma ele faz isso?

Agradeço a atenção

Marcos

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":
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); 
		 }
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:

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);
    }
}
A
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:
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);
    }
}

rs...

Criado 9 de fevereiro de 2012
Ultima resposta 9 de fev. de 2012
Respostas 5
Participantes 5