1.12 Instrucción do ... while

La tercera instrucción de repetición es la instrucción do.... while, y su formato es el siguente:

do
{
   ...
   (otras instrucciones)
   ...
}
while (condición);

Esta instrucción primero ejecuta las instrucciones dentro del ciclo (las que están entre el do y el while) y luego analiza la condición. Si la condición es falsa, finaliza el ciclo y continúa ejecutando las instrucciones que están a continuación del while. Si la condición es verdadera, vuelve a ejecutar las instrucciones dentro del ciclo y  analizar la condición, ciclo que se repetirá hasta que la condición sea falsa.
La principal diferencia con el ciclo while que vimos antes es que aún en el caso de que la condición sea falsa, las instrucciones del ciclo se ejecutan por lo menos una vez. Esto sucede porque a diferencia del while que primero analiza la condición y luego ejecuta las instrucciones del ciclo, el do...while primero ejecuta las instrucciones a repetir y luego analiza la condición por lo que siempre se ejecutarán las instrucciones al menos una vez.


 
Esta instrucción es particularmente útil cuando se desea que el usuario ingrese un dato, y se desea asegurar que el dato sea válido.

Por ejemplo, en el siguiente caso:

cout<<"Ingrese el mes"<<m;
cin>>m;

Si quiero asegurar que el mes sea correcto, debería preguntar si el valor ingresado está entre 1 y 12. Si es incorrecto, debería ingresarlo de vuelta y preguntar de vuelta, y aún podría ingresarse un valor erróneo. Con la instrucción do...while, es muy sencillo escribirlo de la siguiente forma:

do
{
    cout<<"Ingrese el mes"<<m;
    cin>>m;
}
while ((mes< 1) || (mes > 12) );


En este ejemplo, se ingresa el valor de mes,y deberá seguir ingresando dicho valor mientras se ingrese un valor incorrecto (menor a 1 ó mayor a 12).
Esta verificación de los datos ingresados por el usuario se llama validación, y debería hacerse siempre que el dato ingresado pueda estar equivocado. La validación de datos es uno de los principales usos de la instrucción do...while.




No hay comentarios:

Publicar un comentario