Programación: Bucles
Hola, futuros programadores. Ya casi hemos terminado de ver las bases para empezar a hacer nuestra primeras aplicaciones interactivas. Hasta ahora hemos visto cómo crear un programa básico, cómo ordenar el código en funciones, crear y utilizar variables y la forma de definir el flujo de ejecución en función de condiciones. Nos falta el último de los elementos básicos: los bucles. Los bucles -o loops en inglés- son los que van a permitir que repitamos trozos de código en función de condiciones -si, justo como con los ifs-.
Los bucles son muy utilizados, por ejemplo cuando salta una ventana pidiendo que se introduzca un dato. Realizará esa petición de datos (código a ejecutar) mientras los datos que el usuario proporcione sean erróneos (condición).
Los bucles son muy utilizados, por ejemplo cuando salta una ventana pidiendo que se introduzca un dato. Realizará esa petición de datos (código a ejecutar) mientras los datos que el usuario proporcione sean erróneos (condición).
Hay varios tipos de bucles, pero básicamente tenemos dos: el bucle while y el bucle for. Ambos permiten realizar tareas en bucle, de hecho un while se puede convertir en for y viceversa, solo cambia la forma en la que se describe el bucle.
Comencemos viendo el bucle while. La sintaxis es muy similar a la de un if, solo que en lugar de ejecutar el código si se cumple la condición ejecutará ese código siempre que la condición se cumpla, en bucle. Veamos un ejemplo:
#include <stdio.h>
int main(){
int i = 0;
while(i<2){
printf("i vale %i\n",i);
i++; //equivalente a i=i+1;
}
}
Estos bucles son muy simples. Como adelantábamos antes, simplemente ejecutará el código entre sus llaves mientras que la condición se cumpla. Sigamos el orden de ejecución de este programa:
- Se lanza la aplicación
- Se define i con valor 0
- Se evalúa la condición → es verdadera (entra en el bucle)
- Imprime "i vale 0\n"
- Le suma 1 a i, ahora vale 1
- Como acabó el código vuelve a comprobar la condición → es verdadera
- Imprime "i vale 1\n"
- Suma 1, ahora vale 2
- Se comprueba la condición, es falsa (2<2)
- No entra en el bucle y como no hay más código la aplicación termina
Ahora vamos a ver el bucle for. Estos bucles se crearon para facilitar la creación del bucles como el que hemos creado arriba. En esencia se pensó para bucles que se van a repetir un número concreto de veces. Para ver que son equivalentes, vamos a crear un programa que haga lo mismo que el de arriba pero utilizando un bucle for:
#include <stdio.h>
int main(){
int i;
for(i=0;i<2;i++){
printf("i vale %i\n",i);
}
}
Como se aprecia, al ver el código, es algo más corto. En este caso en la definición del bucle no solo se le da la condición para que ejecute el bucle, si no que se le dan tres elementos: una instrucción a ejecutar antes de comenzar el bucle, la condición para ejecutar el bucle y la instrucción a ejecutar cada vez que termina el código entre las llaves. Como antes, vamos a seguir el orden de ejecución:
- Se lanza la aplicación
- Se define i
- Se cambia el valor de i a 0 (intrucción a hacer antes de empezar el for)
- Se comprueba la condición (0<2), es verdadera
- Se imprime "i vale 0\n"
- Como acabó el código le suma 1 a i
- Vuelve a comprobar la condición (1<2), es verdadera
- Se imprime "i vale 1\n"
- Como acabó el código le suma 1 a i
- Se comprueba la condición (2<2), es falsa
- No entra en el bucle y como no hay más código la aplicación termina
En resumen podemos decir que hemos visto como contruir tareas repetitivas de forma automática. Con esto ya podremos empezar a crear nuestras aplicaciones interactivas más básicas junto con operaciones que hasta ahora no podríamos haber creado. En los ejercicios de hoy vamos a ver algunas de esas operaciones y a practicar a crear bucles.
Comentarios
Publicar un comentario