Command Palette

Search for a command to run...

Bucles while y do...while en JavaScript

Aprende cómo usar los bucles while y do...while en JavaScript, sus diferencias, casos de uso prácticos y buenas prácticas para evitar errores comunes.

Lectura: 10 min
Nivel: Principiante

TL;DR - Resumen rápido

  • while ejecuta código mientras la condición sea verdadera
  • do...while ejecuta código al menos una vez, luego verifica la condición
  • La diferencia clave: do...while siempre ejecuta el bloque una vez
  • Usa while cuando no sabes cuántas iteraciones necesitas
  • Usa for cuando conoces el número de iteraciones de antemano
  • break y continue funcionan igual que en for
  • Cuidado con bucles infinitos: asegura que la condición cambie

¿Qué es el bucle while?

El bucle while es una estructura de control que ejecuta un bloque de código repetidamente mientras una condición sea verdadera. A diferencia de for, no tiene inicialización ni incremento incorporados, lo que lo hace más flexible pero también requiere más cuidado para evitar bucles infinitos.

Es ideal cuando no sabes de antemano cuántas veces necesitas iterar, como cuando lees entrada del usuario, procesas datos hasta encontrar una condición específica, o esperas que un estado cambie. La condición se evalúa antes de cada iteración, incluyendo la primera.

Sintaxis de while

La sintaxis de while es simple: la palabra clave while seguida de una condición entre paréntesis y un bloque de código entre llaves. El bloque se ejecuta repetidamente mientras la condición sea true.

sintaxis-while.js
Loading code...

El bucle evalúa la condición antes de cada iteración. Si la condición es true, ejecuta el bloque de código. Si es false, el bucle termina y el programa continúa con la siguiente línea después del bucle. Es fundamental que algo dentro del bucle eventualmente cambie la condición a false, o tendrás un bucle infinito.

Condición se evalúa primero

La condición se evalúa antes de ejecutar el bloque, incluso en la primera iteración. Si la condición inicial es false, el bloque nunca se ejecuta.

Bucle do...while

El bucle do...while es similar a while, pero con una diferencia crucial: el bloque de código se ejecuta al menos una vez antes de verificar la condición. La sintaxis invierte el orden: primero va do con el bloque de código, luego while con la condición.

bucle-do-while.js
Loading code...

Con do...while, el código se ejecuta primero y la condición se verifica después. Esto garantiza que el bloque se ejecute al menos una vez, incluso si la condición inicial es false. Es útil cuando necesitas ejecutar código al menos una vez antes de decidir si continuar, como mostrar un menú al usuario o solicitar input que debe validarse después.

Ejecuta al menos una vez

do...while garantiza que el bloque se ejecute al menos una vez, independientemente de la condición inicial. Útil para menús, validaciones de input y operaciones que deben ocurrir antes de verificar.

while vs do...while

La única diferencia entre while y do...while es cuándo se evalúa la condición: antes o después de ejecutar el bloque. Esta diferencia aparentemente pequeña puede ser crucial dependiendo de tu caso de uso.

while-vs-do-while.js
Loading code...

Con while, si la condición inicial es false, el bloque nunca se ejecuta. Con do...while, el bloque se ejecuta una vez incluso si la condición es false. Usa while cuando necesites verificar primero, usa do...while cuando necesites ejecutar al menos una vez. En el ejemplo, while no imprime nada porque la condición inicial es falsa, pero do...while imprime una vez.

while vs for

Tanto while como for permiten ejecutar código repetidamente, pero cada uno tiene casos de uso ideales. Entender cuándo usar cada uno hace tu código más claro y expresivo.

while-vs-for.js
Loading code...

Usa for cuando conozcas el número de iteraciones de antemano, especialmente para recorrer arrays o rangos numéricos fijos. Usa while cuando el número de iteraciones dependa de una condición dinámica que puede cambiar de formas impredecibles, como leer input del usuario, buscar en estructuras de datos, o esperar que un estado cambie.

Criterio de decisión

Usa for para iteraciones con contador conocido. Usa while para iteraciones basadas en condiciones dinámicas o cuando no sabes cuántas iteraciones necesitas.

Break y continue en while

Al igual que en for, puedes usar break para salir del bucle inmediatamente y continue para saltar a la siguiente iteración. Estas sentencias proporcionan control fino sobre el flujo del bucle.

break-continue.js
Loading code...

break detiene el bucle completamente, útil cuando encuentras lo que buscas y no necesitas seguir iterando. continue salta el resto del código en la iteración actual y vuelve a evaluar la condición, útil para omitir casos específicos sin detener el bucle completo. En el ejemplo, break sale al encontrar un número mayor que 50, mientras continue salta números impares.

Errores comunes

Los bucles while son especialmente propensos a bucles infinitos si no manejas correctamente la condición de salida. Conocer estos errores comunes te ayudará a escribir bucles más seguros.

errores-comunes.js
Loading code...

El error más peligroso es el bucle infinito: cuando la condición nunca se vuelve false. Esto congela tu aplicación y requiere forzar el cierre. Siempre asegúrate de que algo dentro del bucle modifique las variables que afectan la condición. Otro error común es olvidar incrementar contadores o no actualizar el estado que controla el bucle.

Previene bucles infinitos

Verifica siempre que la condición del bucle eventualmente se vuelva false. Un bucle infinito puede colgar tu aplicación. Durante desarrollo, considera agregar un contador de seguridad para salir después de un número máximo de iteraciones.

Casos prácticos

Veamos ejemplos reales de cómo usar while y do...while en situaciones comunes de desarrollo, desde validaciones hasta procesamiento de datos hasta cumplir condiciones específicas.

casos-practicos.js
Loading code...

Los casos prácticos muestran aplicaciones reales: buscar elementos en arrays hasta encontrar lo buscado, simular validación de contraseñas, generar números aleatorios hasta cumplir condiciones, y procesar colas de tareas. Cada ejemplo aprovecha la naturaleza de while de continuar hasta que se cumpla una condición dinámica, sin saber de antemano cuántas iteraciones tomará.

Resumen

Resumen: Bucles while y do...while

Conceptos principales:

  • while ejecuta mientras la condición sea true
  • do...while ejecuta al menos una vez, luego verifica
  • while verifica condición antes, do...while después
  • Ideal cuando no sabes cuántas iteraciones necesitas
  • break y continue controlan el flujo del bucle

Mejores prácticas:

  • Asegura que la condición eventualmente sea false
  • Usa for para iteraciones con contador conocido
  • Usa while para condiciones dinámicas o desconocidas
  • do...while útil para menús y validaciones de input
  • Agrega contador de seguridad durante desarrollo