Introducción al ciclo For-Each en Java
Para cada bucle se ha introducido en Java a partir de JDK 5. Su objetivo es iterar secuencialmente a través de todos los elementos de una Colección o matriz. También está allí en otros lenguajes como C #, donde utiliza la palabra clave para cada uno. Sin embargo, Java usa la palabra clave 'for' solo para implementar para cada bucle a diferencia de C #, pero su sintaxis difiere de la convencional para un bucle. Este bucle para cada también se conoce como bucle mejorado para Java.
Sintaxis
for(type iter_var : Collection) statement_block
La explicación de cada uno de los términos utilizados anteriormente es la siguiente:
- 'tipo' indica el tipo de datos de los objetos del
- 'iter_var' indica el nombre de la variable de iteración que almacena cada valor de la Colección a medida que iteramos a través del ciclo.
- 'Colección' especifica la Colección o matriz a través de la cual queremos iterar.
- 'instrucción-bloque' es el conjunto de instrucciones que queremos ejecutar para cada iteración del bucle.
Es esencial tener en cuenta que el ciclo for-each accede a los elementos de la colección / matriz de forma secuencial donde almacena el valor de cada elemento en la variable de iteración. A continuación se muestra el diagrama de flujo del ciclo for-each.
Como habrás notado, hay ciertas diferencias sutiles entre for loop y for-each loop. For loop requiere que se especifique previamente el número de iteraciones. Sin embargo, este no es el caso con el ciclo for-each, ya que el ciclo itera desde el primer elemento hasta el último elemento de la Colección / matriz y no necesita que se especifique el número de iteraciones.
Un punto importante a tener en cuenta es que el tipo especificado en el ciclo for-each debe coincidir con el tipo de los elementos de la colección porque de lo contrario habrá problemas de compatibilidad.
Ejemplos
En bucle
Encontremos la edad promedio de un grupo de personas que usan for loop:
Código
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
(
System.out.print(ages(i)+" "); sum += ages(i);
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Salida:
Para cada lazo
Para encontrar la edad promedio de un grupo de personas que usan un ciclo para cada:
Código
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" "); sum += x;
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Salida:
La salida es la misma usando ambos bucles como se ve en las figuras anteriores.
Foreach loop usando la declaración de ruptura
Es posible reducir el número de iteraciones del ciclo for-each utilizando una instrucción break. Por ejemplo, si queremos encontrar la suma de solo los primeros 5 elementos, podemos usar la instrucción break de la siguiente manera:
Código
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" ");
)
for (int x : ages)
(
if (ctr == 5) break; sum += x;
ctr += 1;
)
System.out.println("\nSum of age of first 5 people of the group = " + sum);
)
)
Salida:
En el ciclo for-each mencionado anteriormente, x es la variable de iteración que almacena un elemento de la matriz por iteración que cambia en la siguiente iteración. En la primera iteración, x almacena el primer elemento de la matriz y el último elemento de la matriz en la última iteración. A diferencia del bucle, donde accedemos a los elementos de la matriz usando el índice, para cada bucle usa la variable de iteración para acceder a los elementos.
Se debe tener cuidado al usar cada ciclo ya que la variable de iteración almacena el valor del elemento de matriz temporalmente ya que es de "solo lectura" y al cambiar su valor no se modifica la matriz original. Esto contradice el bucle donde cambiar un elemento modifica la matriz original.
Consideremos un ejemplo donde agregamos 5 a cada elemento de la matriz. Podemos detectar la diferencia en la salida en el siguiente código de ejemplo:
Para bucle con diferentes condiciones
Código
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" "); ages(i)+= 5;
)
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" ");
)
)
)
Salida:
La salida de for loop que muestra la actualización de la matriz original
Bucle Foreach con diferentes condiciones
Código
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int x : ages)
(
System.out.print(x+" "); x += 5;
)
System.out.print("\nNew elements of the array are : "); for (int x : ages)
(
System.out.print(x+" ");
)
)
)
Salida:
La salida del ciclo for-each que no muestra ninguna actualización de la matriz original
Cosas para recordar sobre el ciclo For-Each en java
- El bucle For-Each en java se usa para iterar a través de elementos de matriz / colección en una secuencia.
- El bucle For-Each en Java usa la variable de iteración para iterar sobre una colección o matriz de elementos.
- La modificación de la variable de iteración no modifica la matriz / colección original, ya que es de solo lectura.
- El tipo en el ciclo for-each debe coincidir con el tipo de los elementos originales de la matriz / colección.
- El bucle Foreach no necesita que se especifique el número de iteraciones, ya que itera sobre todos los elementos de la colección.
- Es posible detener el ciclo for-each con una instrucción break.
Artículos recomendados
Esta es una guía para el ciclo For-Each en java. Aquí discutimos el ciclo For-Each en java con su implementación de código de diferentes maneras, es decir, con la declaración de interrupción y con las diversas condiciones. También puede consultar los siguientes artículos para obtener más información:
- Matriz de impresión en Java
- Bucles en la programación Java
- Mientras Loop en Java
- Matrices 3D en Java
- Herramientas de implementación de Java
- Matrices 3D en C ++
- Para bucle en C
- Matrices en programación Java