Bucles en JavaScript (for, while y do-while): 10 ejercicios resueltos + aprendizaje teorico
Aprende a dominar los bucles en JavaScript con ejemplos prácticos. Descubre cómo utilizar for, while y do-while para resolver fácilmente problemas reales paso a paso.
Aprendizaje teórico
Los bucles en JavaScript permiten ejecutar un bloque de código varias veces hasta cumplir una condición o recorrer estructuras de datos de manera organizada. Entre los más comunes encontramos:
- for: Ideal para iterar un número conocido de veces.
- while: Útil cuando no sabemos cuántas repeticiones habrá y dependemos de una condición que debe cumplirse.
- do-while: Ejecuta el bloque de código al menos una vez antes de comprobar la condición.
Estos bucles nos facilitan la automatización de tareas repetitivas, como procesar listas, calcular sumatorias o verificar datos de manera eficiente.
10 ejercicios resueltos
A continuación, presentamos 10 ejercicios que ilustran el uso de los bucles for
, while
y do-while
en JavaScript. Cada ejemplo incluye una breve explicación y el código correspondiente con comentarios.
Ejercicio 1: Contar del 1 al 10 con for
Explicación:
En este ejercicio, utilizamos el bucle for
para mostrar los números del 1 al 10 en la consola.
// Contar del 1 al 10 usando un bucle for
for (let i = 1; i <= 10; i++) {
console.log("Número:", i);
}
Ejercicio 2: Suma de los números del 1 al n con for
Explicación:
Pedimos un número n
y sumamos todos los valores desde 1 hasta n
. Este tipo de iteración es perfecta para un for
cuando conocemos el rango final.
// Supongamos que tenemos un valor n (por ejemplo, n = 5)
let n = 5;
let suma = 0;
for (let i = 1; i <= n; i++) {
suma += i; // Acumula la suma
}
console.log("La suma de 1 a", n, "es:", suma);
Ejercicio 3: Calcular el factorial de un número con for
Explicación:
El factorial de un número n
(n!) se calcula multiplicando todos los enteros desde 1 hasta n
.
let numero = 5;
let factorial = 1;
for (let i = 1; i <= numero; i++) {
factorial *= i; // factorial = factorial * i
}
console.log("El factorial de", numero, "es:", factorial);
Ejercicio 4: Tabla de multiplicar del 7 con for
Explicación:
Este ejercicio muestra la tabla de multiplicar del 7, generando los resultados desde 7×1 hasta 7×10.
let tabla = 7;
for (let i = 1; i <= 10; i++) {
console.log(`${tabla} x ${i} = ${tabla * i}`);
}
Ejercicio 5: Recorrer un arreglo con for
Explicación:
Tenemos un arreglo de frutas y utilizamos el bucle for
para mostrar cada elemento en la consola.
let frutas = ["Manzana", "Banana", "Naranja", "Pera"];
for (let i = 0; i < frutas.length; i++) {
console.log("Fruta:", frutas[i]);
}
Ejercicio 6: Generar números aleatorios con while hasta obtener 5
Explicación:
En este ejemplo, seguiremos generando números aleatorios entre 1 y 10 hasta que aparezca el número 5. Para ello, utilizamos Math.floor(Math.random() * 10) + 1
y un bucle while
.
let numeroAleatorio = 0;
// Mientras no sea 5, seguimos generando números
while (numeroAleatorio !== 5) {
numeroAleatorio = Math.floor(Math.random() * 10) + 1;
console.log("Número generado:", numeroAleatorio);
}
console.log("¡Se ha generado el 5! Fin del bucle.");
Ejercicio 7: Validar entrada de usuario con while
Explicación:
Suponiendo que el usuario ingresa texto y queremos aceptar solo strings no vacíos. Aquí, usamos un while
para pedir repetidamente la entrada hasta que sea válida. (En un entorno de consola, la lectura de usuario varía, aquí simulamos con una variable.)
// Simulación de variable de entrada (en un entorno real se obtendría del usuario)
let entrada = "";
// Mientras la entrada esté vacía, simulamos preguntar nuevamente
while (entrada === "") {
// Aquí simulamos que el usuario finalmente ingresa "Hola"
entrada = "Hola";
console.log("Entrada actual:", entrada);
}
console.log("La entrada es válida:", entrada);
Ejercicio 8: Sumar hasta superar 100 con while
Explicación:
Iniciamos una variable acumulador
en 0 y le vamos sumando valores aleatorios. El bucle termina cuando acumulador
sobrepasa 100.
let acumulador = 0;
while (acumulador <= 100) {
// Agregamos un valor aleatorio entre 1 y 20
let valor = Math.floor(Math.random() * 20) + 1;
acumulador += valor;
console.log("Se añadió", valor, "-> Total:", acumulador);
}
console.log("Se superó el valor de 100. Acumulador final:", acumulador);
Ejercicio 9: Pedir confirmación con do-while
Explicación:
El bucle do-while
se ejecuta al menos una vez. Aquí se simula la confirmación de un usuario para continuar. Si no confirma, el bucle termina.
let continuar;
do {
console.log("Ejecutando una acción...");
// Simulamos una confirmación. true = desea continuar
continuar = false;
console.log("¿Deseas continuar?", continuar);
} while (continuar === true);
console.log("Bucle terminado por elección del usuario.");
Ejercicio 10: Uso de break y continue
Explicación:break
detiene el bucle por completo, mientras que continue
salta a la siguiente iteración. Aquí mostramos cómo ignorar los números pares con continue
y cortar el bucle al llegar al 7 con break
.
for (let i = 1; i <= 10; i++) {
// Saltar números pares
if (i % 2 === 0) {
continue;
}
console.log("Número impar:", i);
// Si i llega a 7, paramos el bucle
if (i === 7) {
console.log("Se encontró el 7. Terminando bucle...");
break;
}
}
Preguntas frecuentes (FAQs)
¿Cómo decido qué bucle usar en JavaScript?
Depende del problema. Si conoces el número exacto de iteraciones, for
suele ser la mejor opción. Si no sabes cuántas veces se repetirá el ciclo y dependes de una condición de salida, while
es ideal. Si necesitas ejecutar el bloque al menos una vez antes de evaluar la condición, do-while
es la elección correcta.
¿Puedo anidar bucles en JavaScript?
Sí, es posible anidar bucles, por ejemplo, un for
dentro de otro for
para recorrer arreglos bidimensionales. Sin embargo, debes tener cuidado con la legibilidad del código y con el rendimiento, ya que los bucles anidados pueden aumentar significativamente el tiempo de ejecución.
¿Qué pasa si se produce un bucle infinito?
Un bucle infinito ocurre cuando la condición de salida nunca se cumple. Esto puede bloquear tu aplicación o el navegador. Para evitarlo, verifica siempre que la variable usada en la condición cambie adecuadamente en cada iteración y que se cumpla en algún punto la salida del bucle.
¡Felicidades! Ahora cuentas con una base sólida para trabajar con los bucles for
, while
y do-while
en JavaScript.
Practicar estos ejemplos y variar las condiciones o los rangos te ayudará a interiorizar su funcionamiento. Recuerda que dominar los bucles te permitirá automatizar tareas, procesar datos de manera eficiente y escribir código más limpio y organizado.
¿Listo para llevar tus conocimientos al siguiente nivel? Visita nuestro blog para descubrir más artículos y tutoriales sobre JavaScript y otras tecnologías de programación. ¡Sigue aprendiendo y desarrollando tus habilidades!
Sigue aprendiendo en MDN