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.
Los ciclos do-while tambien son una estructura de control cíclica, los 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.
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
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 evalúa 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;
}
|
Muy buenos los ejemplos
Hola muchas gracias por leernos y compartir tu opinión ?