Los ciclos do-while son estructuras de control cíclicas, las cuales nos permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final, hasta aquí son similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta ventaja adicional y esta consiste que nos da la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la condición necesaria, de este modo los ciclos do-while, son más efectivos para algunas situaciones especificas. En resumen un ciclo do-while, es una estructura de control cíclica que permite ejecutar de manera repetitiva un bloque de instrucciones sin evaluar de forma inmediata una condición especifica, sino evaluándola justo después de ejecutar por primera vez el bloque de instrucciones
¿Cómo funciona un Ciclo Do-While?
Para comprender mejor el funcionamiento del ciclo while, usemos de nuevo el ejemplo de la sección anterior sobre el ciclo while. Imaginemos entonces que por algún motivo, queremos pedirle a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100. Como vimos anteriormente, esto se puede hacer por medio de un ciclo while, pero vamos ahora a ver como lo podemos hacer usando un ciclo do-while mejorando así un poco nuestro algoritmo, evitando ciertos comandos, tal como se dijo con el ciclo while, en efecto aquí estamos en la situación de no tener ni idea de cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, pues es algo indeterminado para nosotros, sin embargo el ciclo while y en efecto el do-while nos permite ejecutar cierta acción de forma infinita hasta que se cumpla alguna condición especifica, en nuestro caso sería que el numero ingresado sea mayor a 100. De modo que si el usuario nos ingresa de manera sucesiva los siguientes numero 1,50,99, 49, 21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números es mayor que 100, sin embargo si nos ingresara el numero 300, el programa finalizaría inmediatamente.
Vamos a ver ahora como es la sintaxis de un ciclo do-while en C++, así estaremos listos para usarlos en nuestros programas de ahora en adelante cada vez que lo necesitemos.
Sintaxis del Ciclo Do-While en C++:
La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo while en C++, sin embargo no se hace más complicado, de hecho con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo terminado.
do
{
....
....
Bloque de Instrucciones....
....
....
}
while(condición de finalización);
Ejemplo 1: Pedir números por pantalla hasta que alguno sea mayor a 100
Vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores, vamos a ver cómo hacer lo mismo con dos tipos de ciclos diferentes (el while y el do-while), sin embargo vamos a ver como con uno es más eficiente que con el otro:
#include"iostream"usingnamespacestd;
intmain(){
int numero;
do
{
cout << "Ingrese un numero ";
cin >> numero;
}
while(numero <= 100);
system("PAUSE");
return0;
}
Diferencias entre el ciclo do-while en C++ y el ciclo while
La diferencia es que el do-while, primero ejecuta la acción y luego evalúa la condición, mientras que el while evalúa la condición antes que cualquier cosa. Esto quiere decir, que el ciclo while podría no ejecutar ni siquiera una vez lo que tenga en su interior, mientras que el do-while te asegura que lo que pongas dentro se ejecute mínimo una vez, pues primero ejecuta y luego evalúa la condición.
#include"iostream"usingnamespacestd;
intmain(){
int opcion = 0;
do
{
cout << "Ingrese 1 para mostrar mensaje\n";
cout << "Ingrese 2 para hacer algo más\n";
cout << "Ingrese 0 para salir\n";
cout << "Ingrese una opción a ejecutar\n";
cin >> opcion;
}
//Mostramos el menú hasta que la opción sea cerowhile(opcion != 0);
system("PAUSE");
return0;
}
Elabore un programa que permita ingresar una contraseña. Si la contraseña es igual a 1234 presente el mensaje: ingreso al sistema, en caso contrario volver a solicitar la clave.
ACTIVIDADES
Usando el ciclo Do While elabore la tabla para transformar kilos a libras de 1 hasta 20
Presente la tabla de multiplicar de un número ingresado
Elabore un programa que permita ingresar la contraseña. Si la contraseña es correcta ingrese su edad en años y si es mayor o igual a 18 presente "MAYOR DE EDAD", en caso contrario presente "MENOR DE EDAD"
DESAFÍO
Usando el ciclo Do While genere y presente todas las tablas de multiplicar del 1 al 12.