Blog en Blogger Perfil en Slideshare Bookmarks en Delicious Perfil el Facebook Perfil en Twitter Fotos en Flickr Página en MySpace Canal en YouTube Perfil en Google Perfil en Google
Búsqueda personalizada
Curso de lenguaje C
 Principal
 Inicio
 Libros
 Librerías
 Bibliotecas
 Mapa Web
 
 Recursos
 Artículos
 Cursos
 Ejercicios
 Guías de uso
 Mini Diccionario 
  
 Sintaxis
 ANSI C
 Ordinogramas
 Pascal
 Pseudocódigo 
  
 Acerca de
 Carlos Pes
 Colaboradores
 Perfiles
 Taller de ideas 
  
 Otros Proyectos
 Blog Carlos Pes
 Grupo Google
 Fotografías
 Proyecto CP
 Recetas cocina 
  
 Sitios Amigos
 Enlaces
  
 Contenidos > 3.2 Repetitiva hacer...mientras ( la instrucción do...while )
3.2 Repetitiva hacer...mientras ( la instrucción do...while )
En lenguaje C, para escribir una instrucción 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:
  1. 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.
  2. 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, 3.1 Repetitiva mientras, 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;
}




 Más información
Texto extraído de los apartados:

   13.2.2 Repetitiva hacer...mientras

   13.2.2.1 La instrucción do...while

   13.2.2.2 Variable acumulador

del libro 
EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C, (páginas 417-425).
 Contenidos > Apartado siguiente
3.3 Repetitiva para ( la instrucción for )
 A destacar
Cursos
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Marketing en Internet
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Libros
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
CarlosPes.Com

Promociona también tu página
Búsqueda personalizada
 Más Webs Interesantes
© 2006-2010 CarlosPes.com