cpp-bucle-while

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

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

Estos bucles son útiles cuando no se conoce de antemano el número exacto de iteraciones y, en su lugar, queremos repetir un código bajo ciertas condiciones.

Si quieres aprender más sobre Bucles
consulta el Curso de Introducción a la Programación leer más ⯈

Bucle WHILE

El bucle while ejecuta un bloque de código mientras una condición sea cierta. La sintaxis básica de un bucle while en C++ es la siguiente:

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

En este bucle:

  • condicion: Es una expresión que se evalúa en cada iteración. Si es true, el bloque de código dentro del while se ejecuta. Si es false, el bucle termina.
  • Código a ejecutar: Aquí se coloca el código que se va a repetir.

Ejemplo Básico

Veamos un ejemplo básico que utiliza un bucle while para imprimir números del 0 al 4:

#include <iostream>

int main() {
    int contador = 0;

    while (contador < 5) {
        std::cout << contador << std::endl;
        contador++;
    }

    return 0;
}

En este ejemplo:

  • El bucle while imprime los números del 0 al 4, ya que la condición contador < 5 es true mientras contador sea menor que 5.

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. La sintaxis básica es la siguiente:

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

En este bucle:

  • Código a ejecutar: Se ejecuta al menos una vez antes de que se verifique la condición.
  • condicion: Se evalúa después de cada iteración. Si es true, el bloque de código se ejecuta de nuevo; si es false, el bucle termina.

Ejemplo Básico

Veamos un ejemplo que utiliza un bucle do-while para imprimir números del 0 al 4:

#include <iostream>

int main() {
    int contador = 0;

    do {
        std::cout << contador << std::endl;
        contador++;
    } while (contador < 5);

    return 0;
}

En este ejemplo, el bucle do-while

  • Produce el mismo resultado que el bucle while anterior
  • Pero garantiza que el código se ejecute al menos una vez, incluso si contador comienza siendo 5

Diferencias entre While y Do-While

  • El bucle while verifica la condición antes de cada iteración, mientras que el bucle do-while la verifica 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:

#include <iostream>

int main() {
    int contador = 1;

    while (contador <= 10) {
        std::cout << contador << std::endl;
        contador++; // Incrementa el contador en 1
    }

    return 0;
}

Este bucle while se ejecuta mientras contador sea menor o igual a 10, imprimiendo cada valor de contador y luego incrementándolo.

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:

#include <iostream>

int main() {
    int suma = 0;
    int numero;

    std::cout << "Ingrese un número positivo (un número negativo para terminar): ";
    std::cin >> numero;

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

    std::cout << "La suma total de los números positivos es: " << suma << std::endl;

    return 0;
}

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:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numeros = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int buscado = 7;
    int index = 0;
    bool encontrado = false;

    while (index < numeros.size() && !encontrado) {
        if (numeros[index] == buscado) {
            encontrado = true; // Marca que el número ha sido encontrado
            std::cout << "Número " << buscado << " encontrado en la posición " << index << std::endl;
        }
        index++; // Incrementa el índice
    }

    if (!encontrado) {
        std::cout << "Número " << buscado << " no encontrado en la lista" << std::endl;
    }

    return 0;
}

Este bucle while busca un número específico en un vector. Si el número es encontrado, se imprime su posición; si no se encuentra, se indica que no está en la lista.

Confirmar Continuación del Programa

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

#include <iostream>
#include <string>

int main() {
    std::string respuesta;

    do {
        std::cout << "¿Desea continuar? (s/n): ";
        std::cin >> respuesta;
    } while (respuesta != "s" && respuesta != "n");

    std::cout << "Programa terminado." << std::endl;

    return 0;
}

Este bucle do-while solicita al usuario que ingrese “s” o “n”. El bloque de código se ejecuta al menos una vez y luego se repite mientras la respuesta no sea “s” o “n”.

Estos ejemplos tienen el propósito de mostrar cómo utilizar el bucle While. No significa que sea la mejor forma de resolver el problema que abordan