INSTRUCCIONES DE BUCLES

EL BUCLE while

while(condición)instrucción;

Instrucción puede ser una instrucción vacía, una única instrucción o un bloque de instrucciones La condición puede ser cualquier expresión. El bucle prosigue mientras la condición sea distinta de cero (!=0).

Representación de la instrucción While según M. Jackson

 

Representación del la instrucción While según diagrama di flujo

 

  • #include <stdio.h>
    #include <conio.h>
    void main()
    {

  • unsigned long int i=0;
    while(!kbhit())
    {

  • i++; /* incrementa el contador hasta que se aprieta una tecla */
    printf("\n i=%lu",i);/* finalmente lo visualiza */
    }
  • }
 
 

PROGRAMA MENU CON UN BUCLE WHILE

 

 

 

  • #include <stdio.h>
    #include <conio.h>
    #define PI 3.1416
    void main()
    {

  • int c;
    double d,v;
    gotoxy(20,2);printf("1: Longitud de la circunferencia"); gotoxy(20,4);printf("2: Superficie del circulo"); gotoxy(20,6);printf("3: Superficie de la esfera"); gotoxy(20,8);printf("4: Volumen de la esfera"); gotoxy(20,10);printf("0: Salida");
    gotoxy(1,12);getch();
    while (c!='0')
    {

  • if ((c<'1')||(c>'4'))printf(" ERROR ");
    else
    {

  • printf("diametro ? ");
    scanf("%lf",&d);
    gotoxy(10,15);clreol(); /* borra la linea 10 a partir de la colummna 15 */
    switch(c) /* calcula y visualiza */
    {

  • case `1':
    v=PI*d;
    printf("Longitud de la circunferencia=%-10.2f",v);
    break;
    case `2':
    v=PI*d*d/4;
    printf("Superficie del circulo=%-10.2f",v);
    break;
    case `3':
    v=PI*d*d/6;
    printf("Superficie de la esfera=%-10.2f",v);
    break ;
    case `4':
    v=PI*d*d*d/6 ;
    printf("Volumen de la esfera=%-10.2f",v);
    break;
    }/*switch*/
 

  • gotoxy(1,12);clreol(); /* borra la linea 12 */
    c=getch();
    }/*else*/

clrscr();
}
 

 

EL BUCLE do-while

A diferencia del bucle while, do-while controla la condición de salida al final del mismo. Esto origina que la instrucción (o bloque de instrucciones) sea ejecutada por lo menos una vez.

do instrucción; while(condición);

El bucle prosigue mientras la condición sea distinta de cero (!=0) es decir verdadera.

Representación de la instrucción do-While según M. Jackson

 

Representación de la instrucción do-While según diagrama di flujo

 

  • #include <stdio.h>
    #include <conio.h>

    void main()
    {

  • int i;
    do
    {

  • printf("\n mete un numero comprendido entre 1 y 5 ");
    i=getch();
while(i>='1' && i<='5');
}
printf("\n\n Te he dicho entre 1 y 5");
}
 

LA INSTRUCCIÓN break

La instrucción break tiene dos aplicaciones. Una servir de tope en la instrucción switch y la otra como salida de emergencia en un bucle. A continuación un ejemplo de esta última.

 

  • #include <stdio.h>

    void main
    {

  • int i;
    for (i=0;i<1000;i++)
    {

  • if (i>10)break;
    printf("\n i=%d",i);
    }
  • }
 
 

LA INSTRUCCIÓN continue

La instrucción continue funciona de modo similar a break. Pero al contrario que esta continue fuerza a que se recomience el ciclo (sin inicializarse).

: El programa que sigue visualiza solo los números pares

  • #include <stdio.h>

    void main()
    {

  • int i;
    for (i=0;i<100;i++)
    {

  • if(i%2)continue;
    printf("%d",i);
    }
  • }