El bucle do while de Java

El bucle do while de Java

En el capítulo anterior, mostré como funcionaba el bucle while en Java. En esta ocasión, te mostraré otro tipo de bucle muy parecido, el bucle do while.

Diferencia entre el bucle while y do while de Java

La diferencia entre estos dos bucles está en que el bucle do while, siempre se va a ejecutar al menos una vez. Este comportamiento no ocurre con el bucle while, ya que si desde un principio, su expresión es false, no se ejecuta ni una sola vez.

Sintaxis de un bucle do while de Java

Veamos, antes de pasar a los ejemplos, la sintaxis básica del bucle do while de Java.

do {
	//Código del bucle
} while (condición);

El bucle do while empieza con la palabra reservada do. Con ello, empieza un bloque de código. En dicho bloque, colocaremos todo el código del bucle, incremento o decremento incluido.

Finalmente, cuando acabemos de escribir todo el código, debemos utilizar la palabra while junto con la expresión. Esto se finaliza con un punto y coma.

Si traducimos la palabra "do" al español, obtenemos un "hacer". De "while", "mientras".

Con estas dos palabras, se puede formar una frase "do this while" (haz esto mientras).

Por lo tanto, con "do", le indicamos a Java, "haz" lo que te indico en este código.

Después de hacerlo, comprueba la expresión, el "mientras". Así pues, este es el motivo de que se ejecute al menos una vez, independientemente de que se cumpla la expresión del while o no, porque se ejecuta el código primero y consulta la expresión después según el flujo de ejecución.

Ejemplo de bucle while vs do while

Veamos un ejemplo de bucle while que nunca se ejecuta.

public class Main {
    public static void main(String[] args) {
        //--> Bucle while
        int i = 15; //iterador

        while (i < 10) {
            System.out.println("El valor es: " + i);
            i++; //incremento
        }
    }
}

En este caso, puesto que la variable "i" vale 15 inicialmente, nunca se cumple la condición del bucle (i menor que 10).

En cambio, si usamos un bucle do while, aunque la condición evalúa como false desde un principio, se ejecuta una vez. Esa es la característica especial del bucle do while.

public class Main {
    public static void main(String[] args) {
        //--> Bucle do while
        int i = 15; //iterador

        do {
            System.out.println("El valor es: " + i);
            i++; //incremento
        } while (i < 10); // expresión
    }
}

Resultado en la consola

El valor es: 15

En el caso de que un bucle do while evalúe su expresión como true desde el principio, se va a ejecutar con total normalidad, como si fuera un bucle while normal.

public class Main {
    public static void main(String[] args) {
        //--> Bucle do while
        int i = 5; //iterador

        do {
            System.out.println("El valor es: " + i);
            i++; //incremento
        } while (i < 10); // expresión
    }
}

Resultado en la consola

El valor es: 5
El valor es: 6
El valor es: 7
El valor es: 8
El valor es: 9

Diagrama de flujo del bucle do while de Java

El diagrama de flujo del bucle do while, varía un poco de el del bucle while.

diagrama de flujo del bucle do while de Java

Todo el temario del curso Java aquí.

Ejercicios de Java

Te dejo unos ejercicios para que practiques con el bucle do while de Java. Las soluciones las encontrarás en el siguiente capítulo del curso.

  1. Elige la opción correcta sobre el siguiente código (la idea es que no ejecutes nada hasta elegir una opción).
    • Se imprime "El valor es: 0".
    • No se imprime nada.
    • Se imprime del "El valor es: ", del 0 al 9.
public class Main {
    public static void main(String[] args) {
        //--> Bucle do while
        int i = 0; //iterador

        do {
            System.out.println("El valor es: " + i);
            i++; //incremento
        } while (i > 10); // expresión
    }
}
  1. Crea un bucle do while que imprima esto en la consola:

Resultado en la consola

El valor es: -1
El valor es: -2
El valor es: -3
El valor es: -4
El valor es: -5
  1. Arregla los fallos en este código, si los hay.
do {
	System.out.println("El valor es: " + i);
	i++
} while (i > 10) } 

Soluciones de los ejercicios del capítulo anterior

  1. El código era correcto, no había nada mal.
while (i > 10) {
            System.out.println("El valor es: " + i);
}
  1. El código no se ejecuta. La condición del bucle while no se cumple, 1 no es mayor que 5.
  2. Se ejecuta 4 veces. Desde "El valor es: 1" hasta "El valor es 4".
  3. El bucle es infinito, puesto que le falta el incremento que lo haga terminar.
  4. Aquí tienes mi solución:
public class Main {
    public static void main(String[] args) {
        //--> Bucle while
        int i = 100; //iterador

        while (i < 126) {
            System.out.println("El valor es: " + i);
            i++;
        }
    }
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior Las funciones decoradoras de Python
curso Java Entrada siguiente El bucle for de Java