Menú principal

viernes, 1 de enero de 2016

Sentencias de control repetitivas (bucles)

En entradas anteriores vimos cómo se puede cambiar la estructura secuencial de un programa (ejecución de una instrucción tras otra según están escritas en el programa) utilizando las sentencias condicionales. Podíamos saltar o ejecutar una parte del programa dependiendo de que se cumpliera una condición u otra. En esta entrada vamos a ver los bucles, son sentencias que nos permiten repetir determinadas instrucciones mientras se cumpla una condición. Por ejemplo si queremos escribir los 100 primeros números no pondremos 100 instrucciones sino una sola que se repita 100 veces utilizando un bucle.

Hay tres tipos de bucles:
  • for
  • while
  • do-while
for

Utilizaremos siempre que sepamos de antemano el numero de veces que queremos repetir las instrucciones. Por ejemplo: El siguiente bucle visualiza los 100 primeros números.

for(i=1; i<=100; i++)
{
   printf("%d " ,i);
}

El bucles for se apoyan en una variable contador (en nuestro caso i) y tiene tres instrucciones:
  • Una inicialización i=1
  • Una condición i<=100  El bucles se ejecutará mientras se cumpla esta condición.
  • Un incremento (o decremento) i++

while

No siempre vamos a saber el numero de veces que hay que iterar. Suponed que tenéis un programa donde el usuario tiene que introducir un numero positivo obligatoriamente. En estas circunstancias deberéis solicitar el numero mientras el valor introducido sea positivo, cosa que es imposible de predecir.

printf("Intro numero positivo");
scanf("%d", &numero);

while(numero<0)

{
    printf("Error: el numero debe ser positivo");
    printf("Por favor introduzca un valor mayor que 0");
    scanf("%d", &numero);
}

Este bucle se repetirá mientras el usuario insista introduciendo valores negativos. Como veis la estructura del while es muy sencilla, solo tenéis que poner la condición y el bucle se ejecutará mientras se cumpla esa condición. OJO que puede no ejecutarse nunca en el caso de que el usuario introduzca un número positivo en el primer intento.

do-while

El do-while es muy parecido al while.La única diferencia es que la condición se evalúa al final del bucle. Esto significa que por lo menos se ejecutará una vez. Tomando el mismo ejemplo anterior con un do-while lo haríamos de la siguiente manera:

do
{
    printf("Intro numero positivo");
    scanf("%d", &numero);
}
while (numero<0);

No hay comentarios:

Publicar un comentario