Sentencias de Iteración en Java (while, do-while)

Author
Por Darío Rivera
Publicado el en Java

En un post anterior de esta serie hemos visto Setencias de Decisión en Java (switch), el día de hoy comenzaremos con las sentencias iterativas de las cuales veremos Do-While y While. Las sentencias iterativas permiten ejecutar un bloque de código tantas veces como sea necesario. Veamos entonces cómo funcionan estas sentencias.

Sentencia while

Esta sentencia permite ejecutar un bloque de código tantas veces como una sentencia sea verdadera. Esto implica que si al comienzo la sentencia es falsa entonces no se ejecutará el bloque de código ni una sola vez. Veamos el siguiente ejemplo.

public class Test
{
    public static void main(String[] args) {
        int counter = 1, until = 5;
        
        while (counter <= until) {
            System.out.println("Itaration #" + counter);
            counter++;
        }
    }
}

Al ejecutar este código se obtiene una salida como la siguiente:

Itaration #1
Itaration #2
Itaration #3
Itaration #4
Itaration #5

Como puedes ver se ha ejecutado cinco veces el mismo bloque de código imprimiendo el número de iteración respectivo. Cómo en cualquier bucle debes asegurarte que el ciclo terminará en algún momento, en este caso en cada iteración se comprueba que la variable counter es menor que until y se aumenta en uno el valor de la variable con tal que cuando llegue a cinco sea la última iteración.

Sentencia do-while

Esta sentencia es similar a la sentencia while en cuanto que el bloque de código se ejecutan siempre y cuando una sentencia sea verdadera. La gran diferencia con respecto a la anterior, es que el bloque de código dentro de esta sentencia se ejecuta al menos una vez, es decir, el valor de la sentencia es evaluado al final. Veamos el siguiente ejemplo.

public class Test
{
    public static void main(String[] args) {
        int a, b, ans;
        String action;
        Scanner input;

        do {
            System.out.println("Enter 'a' number: ");
            input = new Scanner(System.in);
            a = Integer.valueOf(input.nextLine());
            System.out.println("Enter 'b' number: ");
            input = new Scanner(System.in);
            b = Integer.valueOf(input.nextLine());
            ans = a + b;
            System.out.println(String.valueOf(a) + " + " + String.valueOf(b) + " = " + String.valueOf(a+b));

            System.out.println("Do you want to calculate the sum of another two numbers ? (Y/N)");
            Scanner teclado = new Scanner(System.in);
            action = teclado.nextLine();
        } while (action.equals("Y"));
    }
}

La salida será similar a la siguiente.

Enter 'a' number:
14
Enter 'b' number:
16
14 + 16 = 30
Do you want to calculate the sum of another two numbers ? (Y/N)
N

...Program finished with exit code 0
Press ENTER to exit console

Observemos a detalle este programa. En las primeras tres líneas del método main se declaran algunas variables del programa. Seguido a esto, el bloque de código dentro de las llaves pregunta por consola al usuario que digite dos valores, a y b. Seguido a esto se realiza la suma de estos dos valores y se imprime su resultado. Las tres últimas líneas dentro de las llaves preguntan al usuario si dese calcular nuevamente una suma y guarda lo digitado en la variable action. Finalmente se evalúa la condición, si el usuario digitó el caracter Y entonces se volverá a ejecutar todo el bloque. Como veis, en últimas el bloque se ejecuta al menos una vez.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.