Bucle for
El bucle for permite controlar el número de iteraciones mediante una variable contador. Su sintaxis es la siguiente:
for (inicialización; condición; incremento){
// Bloque de instrucciones
}
inicialización: es una o más asignaciones de una variable.condición: es una expresión booleana que controla las iteraciones del bucle.incremento: es el aumento a aplicar a las variables que controlan la condición tras cada iteración.
Su funcionamiento es el siguiente:
- Se ejecuta la
inicialización. Esto solo se ejecuta una vez antes del bucle. - Se evalúa la
condición. Si es falsa, se sale del bucle. Si es verdadera se ejecuta el código del bucle. - Cuando termina de ejecutarse el bloque de instrucciones se ejecuta el
incremento. - Se vuelve al punto 2.
Veamos un ejemplo:
for (int i = 1; i < 3; i++){
System.out.println(i);
}
Veamos la ejecución de este bucle:
- Primero se ejecuta la
inicialización(int i = 1). A la variableidefinida como entero se le asigna el valor 1. - Se ejecuta la
condición(i < 3). Comoi, que tiene el valor 1, es menor que 3, procedemos a ejecutar el bloque de instrucciones. - El bloque de instrucciones imprime
1. - Se ejecuta el
incremento(i++). Esto hace queiincremente el valor en una unidad y tenga el valor 2. - Se vuelve a comprobar la
condición(i < 3). Comoi, 2, es menor que 3 se ejecuta el bloque de instrucciones. - El bloque de instrucciones imprime el valor
2en pantalla. - Se ejecuta el
incremento(i++). Esto hace queiincremente el valor en una unidad y tenga el valor 3. - Se ejecuta la
condición(i < 3). En este caso es falsa, por lo tanto salimos del bucle.
Ámbito de las variables
En Java, es común definir una variable directamente en la declaración de un bucle for. Esta variable solo existe en el ámbito del bucle y no es accesible fuera de él.
La variable i solo existe dentro del bucle. Si intentas acceder a ella fuera del bucle, obtendrás un error de compilación, ya que su ámbito está limitado al for. Ejemplo:
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
System.out.println(i); // Error: no se puede encontrar la variable i