Autor Tema: Java diferencia entre for tradicional y el for each o for extendido sin índice  (Leído 5695 veces)

lauada94

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
La duda es la siguiente,

Hola, como equivalente a esta programación:

for (int element : array)

¿Estaría bien decir:

for(int element=0;element<array.length;element++)

?

No entiendo muy bien la transformación de simplificar el for,

Gracias de antemano.
« Última modificación: 25 de Mayo 2015, 08:37 por Ogramar »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Duda sobre el uso de for en arrays
« Respuesta #1 en: 22 de Mayo 2015, 18:35 »
mmmm bueno no no es lo mismo, en un for normal 

for(int element=0;element<array.length;element++) { System.out.println(array[element] ) } 

(aunque depende de lo que guarde las posiciones del array (primitivo o objeto))

Donde estarias imprimiendo los objetos del array para la posicion  "elemento"

en un for - each se hace sin necesidad de contador int element

for(Objeto objeto : array) { System.out.println(objeto); } 

pongo Objet porque dependerá de lo que se guarde dentro del array.

Espero se entienda, un for-each no necesita contador, pasa él mismo (o itera) por los elementos hasta el ultimo.
« Última modificación: 22 de Mayo 2015, 19:05 por Lorenzo31 »

lauada94

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
Re:Duda sobre el uso de for en arrays
« Respuesta #2 en: 22 de Mayo 2015, 20:07 »
A ver, en prime lugar gracias por responder tan rápido :), veamos te entiendo más o menos pero lo que me gustaría saber es, por ejemplo, en este caso, el for(int element:array), se podría escribir de otra manera? Es que lo que ocurre, es que esta forma de simplificar el for no la entiendo. Gracias.

int array[] = {81,13,10,34,23,234,8,33};
int value = array[0];
int value2 = value;
for (int element : array){
    if (element > value){
        value = element;
    }
    if (element < value2){
        value2 = element;
    }
}
System.out.println(value+" "+value2);


Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Duda sobre el uso de for en arrays
« Respuesta #3 en: 22 de Mayo 2015, 22:51 »
Bueno a ver, en esa forma de usar el for, for-each has de olvidarte de los contadores, los hace solo sin declararlo,

int array[] = {81,13,10,34,23,234,8,33};  <--- en este caso el array guarda valores primarios int no objetos.

entonces el for each declara un int llamado element que recorrera la Array llamada array

for (int element : array){... lo que sea }

te pongo el ejemplo con Objetos, imaginate la clase Persona

Persona array[] = {persona1,persona2,persona3,persona4};
int value = array[0].edad;
for(Persona element : array){ if (element.edad > value) { value = element.edad; } }

En este caso que te pongo imaginate la clase Persona, tiene un atributo edad, pues asigna al int value, el valor del atributo edad de la primera posicion del array.

Luego recorre con un for-each todas las personas del array, no ves contador alguno, porque lo hace solo, declaras un elemento igual a los del array, en tu ejemplo int, en el mio Persona, y los recorre todos en el array.

No se si se ve más claro ahora.
Echale un vistazo a este link, es del curso de java desde 0 y explica genial el for-each (mejor que yo seguro).

http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=632:el-for-extendido-o-bucles-for-each-en-java-ventajas-e-inconvenientes-ejercicio-ejemplo-resuelto-cu00666b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
« Última modificación: 22 de Mayo 2015, 23:26 por Lorenzo31 »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".