La estructura while
En JavaScript, la estructura while se utiliza para ejecutar repetidamente un bloque de código mientras se cumpla una condición específica. Es una forma de crear bucles o ciclos que se repiten hasta que la condición deje de ser verdadera.
1. Cómo funciona while? #
El while evalúa una condición antes de cada iteración del bucle. Si la condición es true, el código dentro del bucle se ejecuta. Este proceso se repite hasta que la condición se evalúa como false.
Sintaxis básica:
1while (condición) { 2 // Código a ejecutar mientras la condición sea verdadera 3}
condición: Es una expresión que se evalúa antes de cada iteración. Si estrue, se ejecuta el código dentro del bucle; si esfalse, el bucle se detiene.
Ejemplo básico #
Supongamos que queremos imprimir los números del 1 al 5 usando un bucle while:
1let contador = 1; 2 3while (contador <= 5) { 4 console.log(contador); 5 contador++; // Incrementa el contador en 1 en cada iteración 6}Salida de consola 1 2 3 4 5
En este ejemplo:
- El
whileevalúa la condicióncontador <= 5. - Mientras la condición sea
true, el bucle continúa ejecutándose. - Dentro del bucle,
contadorse incrementa en 1 en cada iteración. - Cuando
contadorllega a 6, la condición se convierte enfalse, y el bucle se detiene.
Cuidado con los bucles infinitos #
Un bucle while puede continuar indefinidamente si la condición nunca se vuelve false. Esto se llama un bucle infinito y generalmente es un error en la programación que puede hacer que tu programa se bloquee o consuma muchos recursos.
Ejemplo de un bucle infinito (no recomendado):
1let contador = 1; 2 3while (contador <= 5) { 4 console.log(contador); 5 // ERROR!! Aquí falta incrementar el contador, lo que causa un bucle infinito 6}
En este ejemplo:
- La condición
contador <= 5siempre estrueporque el valor decontadornunca cambia, lo que provoca un bucle infinito.
Bucle while con entrada de usuario #
Los bucles while son útiles cuando no sabes de antemano cuántas veces se repetirá el bucle. Por ejemplo, puedes usarlo para pedir repetidamente al usuario que introduzca un valor hasta que proporcione uno válido.
1let numero; 2 3while (numero !== 5) { 4 numero = parseInt(prompt("Introduce el número 5:")); 5} 6 7console.log("¡Correcto, introdujiste el número 5!");
En este ejemplo:
- El bucle
whilesigue pidiendo al usuario que introduzca un número hasta que el usuario introduzca5. - Una vez que la condición
numero !== 5esfalse, el bucle se detiene.
Resumen del tema
Conceptos clave #
- Bucle de Precondición (
while): evalúa la condición booleana antes de cada ciclo; si inicialmente esfalse, el cuerpo del bucle nunca se ejecuta (0 o más iteraciones). - Condición de Parada y Mutación: requiere que dentro del cuerpo se altere la variable de control (incremento, lectura, etc.) para que la condición alcance el estado
false. - Prevención de Bucles Infinitos: vigilar que no haya estados invariantes que bloqueen el hilo de ejecución principal consumiendo el 100% de CPU.
Qué debes recordar #
Usa while para iteraciones indeterminadas donde la condición de continuidad se evalúa siempre antes de ejecutar el bloque.