Sentencia For clásica y mejorada (o enhanced)

La sentencia for es similar a while, pero está más orientada a trabajar con arrays o colecciones. Hoy existen dos versiones de sentencia for; la clásica (la vieja) y otra conocida como enhanced.

Sentencia For clásica

Está basada en el uso de una variable contador, que suelen tomar los nombres “i” o “j” y es llamada índice.

Formato:

for(<inicialización>; <condición>; <modificación>)
	<instrucción>

Usando bloque de instrucciones sería:

for(<inicialización>; <condición>; <modificación>) {
	<secuencia de instrucciones separadas por punto y coma>
}

Normalmente la <inicialización>, <condición> y <modificación> trabajan sobre el índice. La <inicialización> suele iniciar el índice, la <condición> controla si el índice está en rango y la <modificación> incrementa o decrementa el índice.

Veamos un ejemplo para entenderlo.

Ejemplo de cómo imprimir de cero a nueve

for (int i = 0; i < 10; i++) 
	System.out.println(i);

Sigamos la ejecución:

  1. El índice i se inicializa en cero.

  2. Se evalúa la condición (0<10) y como es verdadero se ejecuta System.out.println(i). Se imprime un creo en la consola

  3. Se ejecuta i++ lo que deja a i valiendo 1.

  4. Se vuelve a evaluar la condición (1<10)

  5. Al final de la repetición 10 al ejecutar i++ i pasa a valer 10 y 10<10 da falso y termina la ejecución del for.

Este ejemplo imprime los números del 0 al 9 por la consola. Podemos hacer exactamente lo mismo usando while:

 int i = 0; // <inicialización>
 while (i < 10) { // <condición>
	System.out.println(i);
	 i++; // <modificación>
 }

Ejemplo conteo regresivo de diez a cero

En este ejemplo, iniciamos el índice en 10 y lo decrementamos en uno en cada repetición.

La condición de corte es i >= 0, por lo que repetirá hasta cero incluido.

for (int i = 10; i >= 0; i--) 
	System.out.println(i);

Ejemplo imprimir un array

La sentencia for está históricamente relacionada con el manejo de arrays. Aquí podemos ver un ejemplo simple donde imprimimos el contenido del array numbers.

int[] numbers = { 34, 65, 23, 97, 23, 78, 33 };
for (int i = 0; i < numbers.length; i++) {
	System.out.print(numbers[i] + " ");
} 

Sentencia for enhanced

Este formato de sentencia está especialmente diseñado para recorrer arrays o colecciones de objetos sin usar un índice. Veamos su formato:

for(<declaración de item> : <colección de ítems>)
	<instrucción>

Usando bloque de instrucciones sería:

for(<declaración de item> : <colección de ítems>) {
	<secuencia de instrucciones separadas por punto y coma>
}

Ejemplo imprimir un array usando for enhanced

int[] numbers = { 34, 65, 23, 97, 23, 78, 33 };
for (int item : numbers) {
	System.out.print(item + " ");
}

Este código es más claro. La variable item toma el valor de cada elemento del array numbers. No es necesaria una variable índice.

Resumen

En los siguientes tutoriales veremos ejemplos de cómo usar la sentencia for en sus dos variantes.