Sentencia FOR¶
Un bucle de conteo, o bucle controlado por un contador, es un bucle en el que sabes de antemano cuántas veces se repetirá. Como por ejemplo el siguiente código que cuenta hasta 100:
int i = 0;
while (i < 100) {
System.out.println(i):
i++;
}
Aunque podemos usar una estructura while como la anterior para codificar un bucle de conteo, Java posee una estructura para éste propósito, el bucle for. El bucle for se utiliza cuando el número de iteraciones es conocido. Mientras que while y do-while se utiliza generalmente cuando el número de iteraciones no se conoce.
for(inicializador; condición; modificador) {
//cuerpo del bucle
}
//VARIANTES: Si solo tiene una sentencia en el cuerpo también
//se puede escribir sin llaves
for(inicializador; condición; modificador)
//sentencia;
for(inicializador; condición; modificador) //sentencia;
for(int i = 0; i < 100; i++) {
System.out.println(i);
}
Proceso:
- Inicializador: inicializa y/o declara variables y se ejecuta solo una vez.
- Condición: se evalúa la condición. Si la condición es verdadera, se ejecuta el cuerpo del bucle for.
- Modificador: actualiza el valor de inicializador.
- La condición se evalúa nuevamente. El proceso continúa hasta que la condición es falsa.
Ejemplo: Imprime cualquier texto por pantalla 4 veces¶
for (int i = 1; i <= 4; ++i) {
System.out.println("This is a for loop.");
}
Salida
This is a for loop.
This is a for loop.
This is a for loop.
This is a for loop.
Traza
Iteración | Variable | i <= 4 | Acción |
---|---|---|---|
1a | i=1 | true | imprime texto, i=2 |
2a | i=2 | true | imprime texto, i=3 |
3a | i=3 | true | imprime texto, i=4 |
4a | i=4 | true | imprime texto, i=5 |
5a | i=5 | false | termina |
La variable de inicialización en el bucle for, puede ser declarada en otro lugar del código. Ejemplo:
int i;
//código
for (i = 1; i <= 4; ++i) {
System.out.println("This is a for loop.");
}
Pero esto, viola la idea de que todas las partes del bucle se combinan en una sola declaración. Por tanto, estaría bien si la declaración de la variable i forma parte de la declaración for.
Una variable declarada en una instrucción for solo se puede usar en esa instrucción y en el cuerpo del bucle.
Bucle infinito¶
Un límite de bucle es un valor que controla cuántas veces se repite un bucle. Un bucle se repetirá hasta que se alcance su límite de bucle. La condición del bucle debe ser una expresión booleana que pruebe si se ha alcanzado el límite del bucle. De manera similar, el actualizador debe modificar el contador del bucle para que avance hacia su límite.
Si nunca se alcanza el límite del bucle, la condición del bucle nunca se volverá falsa y el bucle se repetirá para siempre. Esto se conoce como bucle infinito.
Para salir de un programa con bucle infinito presiona CTRL+C.
int i;
//i siempre es mayor que 0
for (i = 1; i >= 0; ++i) {
System.out.println("bucle infinito.");
}
Bucle variando el incremento y decremento¶
Podemos variar el incremento utilizando una operación diferente en la clausula incremento.
//muestra los número con salto de 2
for (int i = 1; i <= 10; i+=2) {
System.out.print(" "+i);
}
También podemos decrementar el for modificando las clausulas.
//muestra los número del 10 al 1
for (int i = 10; i >= 1; i--) {
System.out.print(" "+i);
}