CAP 03 · LEC 05·Control de flujo
while y do...while: bucles con condición
while repite mientras una condición sea verdadera — ideal cuando no sabes de antemano cuántas iteraciones necesitas. do...while garantiza al menos una ejecución.
¿Encontraste un error o algo que mejorar?Editá esta lección en GitHub →
El bucle while
while evalúa la condición antes de cada iteración. Si la condición es falsa desde el inicio, el cuerpo nunca se ejecuta.
let contador = 0;
while (contador < 5) {
console.log(contador);
contador++;
}
// 0 1 2 3 4
// Ejemplo práctico: procesar hasta vaciar una cola
const cola = [1, 2, 3];
while (cola.length > 0) {
const item = cola.shift(); // elimina el primero
console.log("Procesando:", item);
}
// Procesando: 1
// Procesando: 2
// Procesando: 3let contador: number = 0;
while (contador < 5) {
console.log(contador);
contador++;
}
// 0 1 2 3 4
// Ejemplo práctico: procesar hasta vaciar una cola
const cola: number[] = [1, 2, 3];
while (cola.length > 0) {
const item = cola.shift(); // elimina el primero
console.log("Procesando:", item);
}
// Procesando: 1
// Procesando: 2
// Procesando: 3Salida
0
1
2
3
4Bucle infinito
Si la condición nunca se vuelve false, el programa se cuelga. Asegúrate siempre de que el cuerpo del bucle acerque la condición a false.
do...while: al menos una vez
do...while ejecuta el cuerpo primero y luego evalúa la condición. Garantiza al menos una ejecución.
let intentos = 0;
do {
intentos++;
console.log("Intento", intentos);
} while (intentos < 3);
// Intento 1
// Intento 2
// Intento 3
// La condición empieza en false — pero se ejecuta una vez
let n = 10;
do {
console.log("Se ejecuta una vez:", n);
n++;
} while (n < 5);
// Se ejecuta una vez: 10Salida
Intento 1
Intento 2
Intento 3while vs for — cuándo elegir cada uno
| for / for...of | while | |
|---|---|---|
| Cuándo usarlo | Número de iteraciones conocido o iterable definido | Número de iteraciones desconocido, depende de una condición |
| Ejemplos | Recorrer un array, repetir N veces | Leer hasta EOF, esperar conexión, reintentar operaciones |
| Riesgo de bucle infinito | Bajo (el límite está en la declaración) | Alto si no se actualiza la condición |
Cuándo usar do...while
Úsalo cuando necesites que el cuerpo se ejecute al menos una vez antes de verificar: menús de selección, validación inicial de input, reintentos con respuesta inmediata.