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
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
List<Pessoa> pessoas = new ArrayList<Pessoa>();
//popula a lista
for(Pessoa p : pessoas) {
String nome = p.getNome();
System.out.print(nome);
}
Boa tarde PessoalEstou 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
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
}
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);
}
Esse é um muito mau exemplo por dois motivos:
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);
}
}
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...