javascript-bucle-while

Qué es y cómo usar el bucle WHILE y DO-WHILE en JavaScript

Los bucles while y do-while son estructuras de control en JavaScript que permiten repetir la ejecución de un bloque de código mientras se cumpla una condición específica.

A diferencia del bucle for, que se utiliza cuando se conoce el número exacto de iteraciones, los bucles while y do-while son ideales cuando el número de iteraciones es desconocido o depende de una condición de salida.

Bucle while

El bucle while repite un bloque de código mientras una condición dada sea true. La sintaxis básica de un bucle while en JavaScript es la siguiente:

while (condicion) {
    // Código a ejecutar mientras la condición sea verdadera
}

El bloque de código se ejecuta repetidamente siempre que la condición especificada sea true. Es importante tener cuidado con la condición para evitar bucles infinitos.

Ejemplo básico

let contador = 0;

while (contador < 5) {
    console.log(contador);
    contador++;
}

En este ejemplo, el bucle while imprimirá los números del 0 al 4, ya que la condición contador < 5 se evalúa como true durante las primeras cinco iteraciones.

Bucle do-while

El bucle do-while es similar al bucle while, pero garantiza que el bloque de código se ejecute al menos una vez, incluso si la condición es false desde el principio. La sintaxis básica es la siguiente:

do {
    // Código a ejecutar al menos una vez
} while (condicion);

El bloque de código se ejecuta primero y luego se verifica la condición. Si la condición es true, el bloque se ejecuta nuevamente; si es false, el bucle termina.

Ejemplo básico

let contador = 0;

do {
    console.log(contador);
    contador++;
} while (contador < 5);

Este bucle do-while producirá la misma salida que el bucle while del ejemplo anterior.

Diferencias entre while y do-while

  • El bucle while verifica la condición antes de cada iteración, mientras que el bucle do-while verifica la condición después de cada iteración.
  • El bucle do-while garantiza al menos una ejecución del bloque de código, mientras que el bucle while puede no ejecutar el bloque si la condición es false desde el principio.

Ejemplos prácticos

Contar hasta 10

En este ejemplo, se utiliza un bucle while para contar del 1 al 10 e imprimir cada número.

let contador = 1;

while (contador <= 10) {
    console.log(contador);
    contador++; // Incrementa el contador en 1
}

Este bucle while se ejecuta mientras el valor de contador sea menor o igual a 10. En cada iteración, se imprime el valor actual de contador y luego se incrementa en 1.

Sumar números positivos ingresados por el usuario

En este ejemplo, se utiliza un bucle while para sumar números positivos ingresados por el usuario hasta que se ingrese un número negativo.

let suma = 0;
let numero;

numero = parseInt(prompt("Ingrese un número positivo (un número negativo para terminar): "));

while (numero >= 0) {
    suma += numero; // Suma el número ingresado a la variable 'suma'
    numero = parseInt(prompt("Ingrese otro número positivo (un número negativo para terminar): "));
}

console.log(`La suma total de los números positivos es: ${suma}`);

Este bucle while se ejecuta mientras el usuario ingrese números positivos. Cada número se suma a la variable suma. El bucle termina cuando se ingresa un número negativo.

Buscar un número en una lista

En este ejemplo, se utiliza un bucle while para buscar un número específico en una lista de números.

let numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let buscado = 7;
let index = 0;
let encontrado = false;

while (index < numeros.length && !encontrado) {
    if (numeros[index] === buscado) {
        encontrado = true; // Marca que el número ha sido encontrado
        console.log(`Número ${buscado} encontrado en la posición ${index}`);
    }
    index++; // Incrementa el índice
}

if (!encontrado) {
    console.log(`Número ${buscado} no encontrado en la lista`);
}

Este bucle while se ejecuta mientras no se haya encontrado el número buscado y el índice esté dentro del rango de la lista.

Si el número es encontrado, se marca como encontrado y se imprime su posición. Si el bucle termina sin encontrar el número, se indica que no se encontró en la lista.

Validación de entrada del usuario

En este ejemplo, se utiliza un bucle do-while para solicitar al usuario que ingrese “s” o “n” para confirmar si desea continuar.

let respuesta;

do {
    respuesta = prompt("¿Desea continuar? (s/n): ").toLowerCase();
} while (respuesta !== "s" && respuesta !== "n");

console.log("Programa terminado.");

Este bucle do-while solicita al usuario que ingrese “s” o “n” para confirmar si desea continuar. El bloque de código se ejecuta al menos una vez y luego se repite mientras el usuario no ingrese una respuesta válida.

Estos ejemplos tienen el propósito de mostrar cómo utilizar los bucles while y do-while. No significa que sea la mejor forma de resolver el problema que abordan.