Saltar al contenido principal
02Estructuras de control

Bucles con do while

Clase 3 de 62 min de lectura

Con while, si la condición es falsa desde el principio, el código no se ejecuta ni una vez. ¿Y si necesitas que se ejecute sí o sí al menos la primera? Para eso JavaScript tiene un bucle que se ejecuta al menos una vez y luego se repite mientras se cumpla una condición.

Se llama do while. No es muy famoso ni muy utilizado, pero conviene que sepas que existe. Fíjate en que la condición va al final:

do {  // código que se ejecuta al menos una vez} while (condición)

Primero hace, luego pregunta. Justo al revés que while.

Infografía
while frente a do while con una condición falsa
5.while se ejecuta 0 o más veces; do while, al menos una.
Paso 5 de 5

Para que la clase sea más interesante, te voy a presentar una función integrada en JavaScript que nos va a dar mucho juego: confirm.

confirm#

La función confirm muestra un cuadro de diálogo con un mensaje y dos botones: «Aceptar» y «Cancelar». Pruébala en la consola:

confirm('¿Te gusta JavaScript?')

Lo interesante es lo que pasa después. Si el usuario pulsa «Aceptar», la función devuelve true. Si pulsa «Cancelar», devuelve false.

Llamar a confirm es una expresión y, por lo tanto, produce un valor que puedes guardar en una variable:

let respuesta = confirm('¿Te gusta JavaScript?')console.log(respuesta) // -> true o false

Usando do while#

Vamos a juntar las dos cosas en un programa un poco pesado: te preguntará si te gusta JavaScript una y otra vez, y solo te dejará en paz cuando pulses «Cancelar».

let respuestado {  respuesta = confirm('¿Te gusta JavaScript?')} while (respuesta)

Aquí do while encaja perfecto: hay que preguntar al menos una vez para tener una respuesta que comprobar.

Si el usuario pulsa «Aceptar», respuesta vale true y el bucle se repite. Si pulsa «Cancelar», respuesta vale false y el bucle se detiene.

En resumen

  • do while ejecuta el código al menos una vez y después comprueba la condición.
  • En while la condición va al principio; en do while, al final.
  • confirm muestra un cuadro de diálogo y devuelve true («Aceptar») o false («Cancelar»).
  • La variable que usas en la condición tiene que estar declarada fuera del bloque do.