Estructura do - while
La estructura do-while en C++ es una estructura de control de flujo iterativa que permite ejecutar un bloque de código de manera repetitiva al menos una vez, y luego evaluar una condición booleana para determinar si se debe continuar con las iteraciones. Es una herramienta útil para situaciones en las que se requiere ejecutar un código al menos una vez, independientemente del valor inicial de la condición.
Sintaxis:
do {
// Bloque de instrucciones a ejecutar
} while (condicion);
Explicación:
Bloque de instrucciones: Es el conjunto de instrucciones que se ejecutan repetidamente. Puede contener cualquier instrucción válida de C++, como declaraciones de variables, asignaciones, llamadas a funciones, operaciones aritméticas, etc.
Condición: Se evalúa una expresión booleana al final del bucle. Si la expresión es
true, se ejecuta nuevamente el bloque de instrucciones. Si la expresión esfalse, se termina el bucle y la ejecución continúa con la siguiente instrucción después del bucle.
Ejemplo 1: Solicitar un número al usuario hasta que ingrese un valor válido:
int numero;
do {
std::cout << "Ingrese un número positivo: ";
std::cin >> numero;
} while (numero <= 0);
std::cout << "Número ingresado válido: " << numero << std::endl;
Explicación:
- Se solicita al usuario que ingrese un número en la variable
numero. - Se ejecuta el bloque de instrucciones dentro del
do-while. - Dentro del bloque, se verifica si el valor de
numeroes menor o igual que 0. - Si
numeroes menor o igual que 0, se vuelve a solicitar al usuario que ingrese un número (el bucle se repite). - Si
numeroes un número positivo, la condición se vuelvefalsey el bucle termina. - Finalmente, se imprime el número ingresado válido en la consola.
Ejemplo 2: Jugar un juego de adivinanzas:
int numeroSecreto = 23;
int numeroIngresado;
do {
std::cout << "Adivina el número secreto (entre 1 y 100): ";
std::cin >> numeroIngresado;
if (numeroIngresado < numeroSecreto) {
std::cout << "El número ingresado es demasiado bajo. Inténtalo de nuevo.\n";
} else if (numeroIngresado > numeroSecreto) {
std::cout << "El número ingresado es demasiado alto. Inténtalo de nuevo.\n";
}
} while (numeroIngresado != numeroSecreto);
std::cout << "¡Felicidades! Adivinaste el número secreto: " << numeroSecreto << std::endl;
Explicación:
- Se define un
numeroSecretocon un valor aleatorio. - Se declara una variable
numeroIngresadopara almacenar el número ingresado por el usuario. - El bucle
do-whilese ejecuta hasta que el usuario adivine elnumeroSecreto. - Dentro del bucle, se solicita al usuario que ingrese un número.
- Se compara el
numeroIngresadocon elnumeroSecreto. - Si el
numeroIngresadoes menor que elnumeroSecreto, se indica que el número es demasiado bajo y se le pide al usuario que intente nuevamente. - Si el
numeroIngresadoes mayor que elnumeroSecreto, se indica que el número es demasiado alto y se le pide al usuario que intente nuevamente. - Si el
numeroIngresadoes igual alnumeroSecreto, el bucle termina y se muestra un mensaje de felicitación al usuario.
Puntos importantes:
- La estructura
do-whilegarantiza que el bloque de instrucciones se ejecute al menos una vez, incluso si la condición inicial esfalse. - Se puede utilizar una sentencia
breakdentro del bucle para salir prematuramente del ciclo. - La estructura
do-whilees útil para situaciones en las que se desea realizar una acción inicial y luego evaluar una condición para determinar si se deben realizar iteraciones adicionales.
Comentarios
Publicar un comentario