El ciclo do-while (Instrucción hacer – repetir mientras) es un tipo de estructura repetitiva eficiente. Lo que lo diferencia con el while es que en la estructura do-while la condición se evalúa al finalizar el ciclo, esto hace que las instrucciones se ejecuten cuando menos una vez.
La ejecución de esta estructura se realiza de la siguiente manera.
1.- Se ejecutan las instrucciones que se encuentran dentro del do, para esto es necesario ponerlas entre llaves.
1 2 3 4 5 |
do{ Instrucciones. } |
2.- Después evalúa la expresión dentro de while. Si la expresión es falsa, el ciclo do-while finaliza y pasa a la siguiente instrucción del programa. Si la expresión es verdadera, el ciclo se repite.
La sintaxis de este ciclo es la siguiente:
1 2 3 4 5 6 |
do{ Instrucción } while (expresión); |
Ejemplo con ciclo do-while
Un ejemplo sobre como funciona un ciclo do-while es el siguiente.
Un programa que te pida un número del 1 al 10 y si el numero es menor que 0 o mayor que 10 imprima en la pantalla que es un numero invalido; y mientras número sea inválido siga pidiendo al usuario un número.
Nos damos cuenta que el programa te pide un numero al menos una vez por lo que es posible resolverlo con una estructura do-while
Diagrama de flujo.
Como vemos en el diagrama de flujo nos damos cuenta que primero declaramos nuestra variable después sigue las instrucciones que estaría dentro de do , primero pedir y guardar el número después evalua si el número no es válido si es verdadero imprime que el número no es válido si es falso, evalúa la condición de while que sería mientras número sea mayor que 10 o menor que 0 (inválido) vuelve a pedir y guardar número y evaluarlo si resulta falso, imprime que tu número es válido y se termina el programa.
Ahora lo veremos en código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <iostream> using namespace std; /* *Programa que pide un numero del 1 al 10 y si el numero no es valido * lo sigue pidiendo */ int main () { // Declarar variables para este programa es una variable tipo entero por que se pide un numero int numero; // Instrucciones dentro del do do { //Pide un numero al usuario del 1 al 10 y lo guarda cout << "Dame un numero del 1 al 10 "; cin >> numero; /*Evalua si el numero es mayor que 10 o menor que 0, *serian las condiciones en que nuestro numero no seria valido */ if(numero > 10 || numero< 0) //si la condicion anterior es verdadera imprime "Tu numero no es valido cout << "Tu numero no es valido" << endl; } /* Mientras numero sea mayor que 10 o menor que 0 es decir que numero no es valido, * volvera a ejecutar las intruciones de do para volver a pedir un numero hasta que sea valido */ while (numero > 10 || numero < 0); /*Si no se cumple la expresion dentro de while es decir, *que numero sea mayor o igual a 0 y menor o igual a 10 se rompe el ciclo do-while * y continua con el resto del programa */ cout << "Tu numero es " << numero << " y es valido" << endl; return 0; } |
GRACIAS, tu ayuda sirvió de mucho ya que tengo una presentación de ese tema y pensé que me iva a tardar mucho en buscar que es do-while pero bien explicado, hasta que encontré tu explicación que me sirvió de mucho el significado y el ejercicio que esta muy bien explicado, la verdad creo que cualquiera que profundice bien un tema como este podría enseñarlo, pero muy pocas personas se animan a hacerlo, en fin gracias por una explicación tan buena sobre el tema.