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