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 estrue
, el bloque de código dentro delwhile
se ejecuta. Si esfalse
, 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óncontador < 5
estrue
mientrascontador
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 estrue
, el bloque de código se ejecuta de nuevo; si esfalse
, 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 bucledo-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 buclewhile
puede no ejecutar el bloque si la condición esfalse
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