Saltar a contenido

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:

  1. Inicializador: inicializa y/o declara variables y se ejecuta solo una vez.
  2. Condición: se evalúa la condición. Si la condición es verdadera, se ejecuta el cuerpo del bucle for.
  3. Modificador: actualiza el valor de inicializador.
  4. La condición se evalúa nuevamente. El proceso continúa hasta que la condición es falsa.

Java

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);
    }
1 3 5 7 9

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);
    }
10 9 8 7 6 5 4 3 2 1