1. Introducción
Imagina que tienes la tarea: mostrar en pantalla «¡Hola!» diez veces. Claro que podrías escribir diez líneas con System.out.println("¡Hola!"); — pero ahora ya conoces el bucle while, así que te las apañarás sin problema.
Pero hay otro bucle — for, que repite la acción necesaria el número de veces requerido. ¡Y sabe contar por sí mismo!
He aquí un ejemplo típico:
for (int i = 0; i < 10; i++)
{
System.out.println("¡Hola!");
}
¿Qué hace este código? Muestra en pantalla la palabra «¡Hola!» exactamente 10 veces. Sin copiar y pegar ni dolor en la muñeca.
2. Sintaxis del bucle for
El bucle for consta de tres partes principales, que se escriben entre paréntesis después de la palabra clave for:
for (inicialización; condición; actualización)
{
// Cuerpo del bucle
}
for
Veamos cada elemento en detalle:
- Inicialización — normalmente la creación de una variable contador con la que se lleva la cuenta de las repeticiones (int i = 0).
- Condición — comprobación antes de cada iteración. Si es verdadera, se ejecuta el cuerpo del bucle. Si es falsa, el bucle termina. Por ejemplo, i < 10.
- Actualización — operador que se ejecuta después de cada iteración. Normalmente incrementa o decrementa el valor del contador (i++).
Podemos dibujar un esquema:
3. Comparación de for y while
Quizá te resulte más claro si te digo que for es simplemente otra forma de escribir el bucle while.
Teníamos un bucle while:
int i = 0; // Inicialización de la variable para el bucle
while(i<10) // Comprobación de la condición de continuación del bucle
{
System.out.println(i); // Acción útil (cuerpo del bucle)
i++; // Incremento del contador
}
Podemos escribirlo en forma de bucle for, simplemente trasladando todas las acciones que controlaban la lógica del bucle:
for (int i = 1; i <= 10; i++) // Inicialización; Comprobación de la condición; Incremento del contador
{
System.out.println(i); // Acción útil (cuerpo del bucle)
}
Pasos de funcionamiento de ambos bucles:
- La inicialización int i = 0; se ejecuta una vez antes del bucle.
- Luego se comprueba la condición i <= 10
- Después, la acción útil del bucle System.out.println(i);
- Luego el incremento del contador i++
- A continuación, se vuelve al paso 2.
4. Ejemplos de uso del for
El ejemplo más sencillo
Imprimamos los números del 1 al 5:
for (int i = 1; i <= 5; i++)
{
System.out.println(i);
}
Salida:
1
2
3
4
5
Nota: si hubieras escrito i < 5, la última salida sería 4.
Cuenta atrás
¿Quieres sentirte astronauta? ¡Hagamos una cuenta atrás!
for (int i = 5; i > 0; i--)
{
System.out.println(i);
}
System.out.println("¡Despegamos!");
Salida:
5
4
3
2
1
¡Despegamos!
Un paso del bucle distinto de 1
Puedes variar el contador no solo de 1 en 1, sino en cualquier otro número:
for (int i = 0; i <= 10; i += 2)
{
System.out.println(i);
}
// Imprimirá: 0 2 4 6 8 10
5. Variaciones del for
Varias variables en el bucle
A veces es útil llevar el seguimiento de dos variables a la vez. Por ejemplo, imprimamos los números de derecha a izquierda y de izquierda a derecha:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
System.out.println(left + " " + right);
}
Salida:
1 10
2 9
3 8
...
10 1
Bucle for infinito
Si el caso es muy duro (por ejemplo, tu proyecto es un móvil perpetuo en TI), puedes hacer un bucle for «eterno»:
for (;;) // ni inicialización, ni condición, ni actualización
{
System.out.println("¡Trabajar, trabajar y una vez más trabajar!");
}
Atención: este bucle solo terminará si en el cuerpo hay break, return o throw. No lo uses sin motivo, o podrías despertar al antiguo demonio — «El proceso no responde».
GO TO FULL VERSION