lunes, 12 de junio de 2017

C, 24. Sentencia do-while

/* Repetición: El bucle do...while

    Sintaxis:

        do{
            Instrucciones
        }while(condicion)    */


// Mostrar los 10 primeros numeros enteros positivos

#include<stdio.h>

int main(){
    int i;                   // Declaramos la variable i
    i=1;                     // Asignamos el valor 1, es el primer número de la serie

    do{
        printf("%i",i);      // Imprimimos en pantalla el valor de la variable i...
        i++;                 // ...en cada iteracion le sumamos 1 a i...
    }while(i<=10);           // ...e imprimimos el valor de i hasta que alcance el
                             // último número.
    return 0;
}

En el primer ejemplo acabamos de ver cómo aplicar do-while, el programa ya tiene las variables por lo que al correrlo simplemente veremos el resultado en pantalla, sin necesidad de interactuar con él.
A continuación otro ejemplo donde el usuario ha de dar los datos para que se ejecute el bucle y concluya.


// Mostrar los numeros enteros entre dos intervalos, ambos inclusive

#include<stdio.h>

int main(){
    int n1,n2;               // Declaramos las variables para el primer y ultimo
                             // numero de la serie, solicitamos al usuario que
                             // que indique sus valores.
    printf("Introduzca el primer numero de la serie:\n");
    scanf("%i",&n1);
    printf("Introduzca el ultimo numero de la serie:\n");
    scanf("%i",&n2);

    do{
        printf("%i ",n1);     // Imprimimos en pantalla el valor de la variable n1
        n1++;                 // en cada iteracion le sumamos 1 a n1
    }while(n1<=n2);           // e imprimimos el valor de n1 hasta que alcance el
                              // valor de n2.
    return 0;
}

En este último ejemplo, en cambio, el programa seguirá ejecutándose mientras el usuario siga realizando la acción que permite reproducir el bucle, en caso contrario finalizará.

// Solicitar repetición de saludo

#include<stdio.h>

int main(){
    char opc;

    do{
        fflush(stdin);                     // Esta funcion limpia la pantalla
        printf("Hola");
        printf("\nIntroduzca 's' para saludar nuevamente: \n");
        scanf("%c",&opc);
    }while(opc == 's' || opc == 'S');      // Mientras el programa siga registrando...
                                           // el caracter "s", nos seguira devolviendo
                                           // ...el saludo inicial.
    return 0;
}