|
|
|
|
|
|
CarlosPes.com
> Curso
de Lenguaje C
> Instrucción do while en Lenguaje C |
|
Instrucción do while
en
Lenguaje C
|
|
|
|
|
¿Para qué
sirve la instrucción repetitiva hacer mientras (do while) en
C?
|
|
En
lenguaje C, para escribir una instrucción do while (repetitiva
hacer mientras) se utiliza la sintaxis: |
|
do
{
<bloque_de_instrucciones>
} while ( <expresión_lógica> ); |
|
|
Cuando
el <bloque_de_instrucciones> sólo contiene una
instrucción, los caracteres abrir llave
({) y cerrar llave (}) son opcionales.
Además, como se puede apreciar, la instrucción
repetitiva do
while,
también hace uso de una
condición.
En un bucle do
while, primero se
ejecuta el bloque de instrucciones
y, después, se evalúa la condición. En
el caso de que ésta sea verdadera, se vuelve a ejecutar el
bloque de instrucciones. Y así sucesivamente, hasta que, la
condición sea falsa.
Por consiguiente, cuando el flujo de un programa llega a un bucle do while, existen dos posibilidades:
- Se
ejecuta el bloque de instrucciones y, después, si la
condición se evalúa a falsa, el bloque de
instrucciones no se vuelve a ejecutar, de manera que, el bucle do while finaliza, habiendo realizado una sola iteración.
- Se
ejecuta el bloque de instrucciones y, a continuación, si
la condición se evalúa a verdadera, el bloque de
instrucciones se vuelve a ejecutar. Y así sucesivamente,
hasta que la condición sea falsa.
El
<bloque_de_instrucciones> de un bucle do while puede
ejecutarse una o más veces (iteraciones). También
hay que prevenir que el bucle no sea infinito.
En resumen, una instrucción repetitiva do while permite
ejecutar repetidamente (una o más veces) un bloque de
instrucciones, mientras que, una determinada condición sea
verdadera.
Ejemplo 1: De modo que, utilizando un bucle do while, el problema del
ejemplo 1 del apartado anterior, Instrucción while en C, se puede
resolver con el código: |
|
#include <stdio.h>
int main()
{
int contador;
printf( "\n " );
contador = 1; /* Inicialización del
contador */
do
{
printf( "%d ",
contador ); /* Salida */
contador++;
/* Incremento */
} while ( contador <= 10
); /* Condición */
return 0;
} |
|
|
Como
ya se ha dicho, el bucle do
while puede iterar
una o más
veces, por tanto, cuando un bloque de instrucciones debe iterar al
menos una vez, generalmente, es mejor utilizar un bucle do while que
un bucle while, como por ejemplo, en el siguiente
problema.
Ejemplo 2: Se quiere escribir un programa que:
1º) Pida por teclado un número (dato entero).
2º) Pregunte al usuario si desea introducir otro o no.
3º) Repita los pasos 1º y 2º, mientras que,
el usuario no responda 'n' de (no).
4º) Muestre por pantalla la suma de los números
introducidos por el usuario.
En pantalla: |
|
Introduzca un numero entero: 7
¿Desea introducir otro (s/n)?: s
Introduzca un numero entero: 16
¿Desea introducir otro (s/n)?: s
Introduzca un numero entero: -3
¿Desea introducir otro (s/n)?: n
La suma de los numeros introducidos es: 20 |
|
|
El
código propuesto es: |
|
#include <stdio.h>
int main()
{
char seguir;
int acumulador, numero;
/* En acumulador se va a guardar la suma de
los
números introducidos por el usuario. */
acumulador = 0;
do
{
printf(
"\n Introduzca un numero entero: " );
scanf( "%d",
&numero);
acumulador += numero;
printf(
"\n Desea introducir otro numero (s/n)?: " );
fflush( stdin );
scanf( "%c",
&seguir);
} while ( seguir != 'n' );
/* Mientras que el usuario desee introducir
más
números, el bucle iterará. */
printf( "\n La suma de los
numeros introducidos es: %d",
acumulador );
return 0;
} |
|
|
|
|
|
|
|
|
|