Java para bucle

1. Información general

En este artículo, veremos un aspecto central del lenguaje Java: ejecutar una declaración o un grupo de declaraciones repetidamente usando un bucle for .

2. Simple para bucle

Un ciclo for es una estructura de control que nos permite repetir ciertas operaciones incrementando y evaluando un contador de ciclo.

Antes de la primera iteración, se inicializa el contador de bucle, luego se realiza la evaluación de la condición seguida de la definición del paso (generalmente un simple incremento).

La sintaxis del bucle for es:

for (initialization; Boolean-expression; step) statement;

Veámoslo en un ejemplo sencillo:

for (int i = 0; i < 5; i++) { System.out.println("Simple for loop: i = " + i); }

La inicialización , la expresión booleana y el paso utilizados en las instrucciones for son opcionales. Aquí hay un ejemplo de un bucle for infinito :

for ( ; ; ) { // Infinite for loop }

2.1. Etiquetado para bucles

También podemos tener etiquetados para bucles. Es útil si tenemos bucles for anidados para poder romper / continuar desde un bucle for específico :

aa: for (int i = 1; i <= 3; i++) { if (i == 1) continue; bb: for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break aa; } System.out.println(i + " " + j); } }

3. Mejorado para Loop

Desde Java 5, tenemos un segundo tipo de bucle for llamado mejorado para que facilita la iteración sobre todos los elementos de una matriz o colección.

La sintaxis del bucle for mejorado es:

for(Type item : items) statement;

Dado que este ciclo se simplifica en comparación con el ciclo estándar for, necesitamos declarar solo dos cosas al inicializar un ciclo:

  1. El identificador de un elemento sobre el que estamos iterando actualmente
  2. La matriz / colección de origen que estamos iterando

Por lo tanto, podemos decir que: Para cada elemento en items, asigne el elemento a la variable item y ejecute el cuerpo del ciclo .

Echemos un vistazo al ejemplo simple:

int[] intArr = { 0,1,2,3,4 }; for (int num : intArr) { System.out.println("Enhanced for-each loop: i = " + num); }

Podemos usarlo para iterar sobre varias estructuras de datos de Java:

Dado un objeto de lista List , podemos iterarlo:

for (String item : list) { System.out.println(item); }

De manera similar, podemos iterar sobre un conjunto Set :

for (String item : set) { System.out.println(item); }

Y, dado un mapa Map , también podemos iterar sobre él:

for (Entry entry : map.entrySet()) { System.out.println( "Key: " + entry.getKey() + " - " + "Value: " + entry.getValue()); }

3.1. Iterable.forEach ()

Desde Java 8, podemos aprovechar los bucles for-each de una manera ligeramente diferente. Ahora tenemos un método forEach () dedicado en la interfaz Iterable que acepta una expresión lambda que representa una acción que queremos realizar .

Internamente, simplemente delega el trabajo al bucle estándar:

default void forEach(Consumer action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }

Echemos un vistazo al ejemplo:

List names = new ArrayList(); names.add("Larry"); names.add("Steve"); names.add("James"); names.add("Conan"); names.add("Ellen"); names.forEach(name -> System.out.println(name));

4. Conclusión

En este tutorial rápido, exploramos el bucle for de Java .

Como siempre, se pueden encontrar ejemplos en GitHub.