Ir al contenido principal

Comenzando a programar: Bucles

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).

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:
  1. Se lanza la aplicación
  2. Se define i con valor 0
  3. Se evalúa la condición → es verdadera (entra en el bucle)
  4. Imprime "i vale 0\n"
  5. Le suma 1 a i, ahora vale 1
  6. Como acabó el código vuelve a comprobar la condición → es verdadera
  7. Imprime "i vale 1\n"
  8. Suma 1, ahora vale 2
  9. Se comprueba la condición, es falsa (2<2)
  10. 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:
  1. Se lanza la aplicación
  2. Se define i
  3. Se cambia el valor de i a 0 (intrucción a hacer antes de empezar el for)
  4. Se comprueba la condición (0<2), es verdadera
  5. Se imprime "i vale 0\n"
  6. Como acabó el código le suma 1 a i
  7. Vuelve a comprobar la condición (1<2), es verdadera
  8. Se imprime "i vale 1\n"
  9. Como acabó el código le suma 1 a i
  10. Se comprueba la condición (2<2), es falsa
  11. 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.

Ejercicios

Como ya sabéis, con todos los ejemplos os voy a dejar unos ejercicios para que practiquéis por vuestra cuenta.

Ejercicios aquí.
Soluciones aquí.

Cualquier duda que tengáis con lo que se ha explicado aquí o con los ejercicios no dudéis en dejarnos un mensaje.

Comentarios

Entradas populares de este blog

¿Por qué programar?

Hola, futuro programador. Supongo que te estás preguntando para qué puede ser útil para ti saber programar. Espero poder responderte a eso con unos pequeños ejemplos y experiencias para las que, para mi, me ha sido muy provechoso. Lo primero es tener claro qué es la programación. Para ello podemos guiarnos por definiciones bastante formales pero realmente programar simplemente es resolver un problema concreto mediante la automatización de tareas. Aún así, esta definición puede sonar bastante abstracta, pero os pondré un pequeño ejemplo: la alarma que nos despierta todos los días. Puede parecer un elemento poco importante, pero todos sabemos que no lo es. El problema que trata de resolver está claro, despertarnos. ¿Y cómo lo consigue?. La respuesta es simple, automatizando una tarea: comprobar la hora y, si coincide, hacer sonar la alarma. Os voy a poner un ejemplo -un tanto curioso, por seros sinceros- en el que saber programar me ha sido extremadamente útil. Se basa en un pr...

Nuestro primer programa

Hola, futuros programadores. Es el momento de programar nuestra primera aplicación. Hay multitud de lenguajes en la actualidad pero para comenzar utilizaremos el famoso C -lenguaje en el que se ha escrito gran parte de los sistemas operativos modernos, como Linux, Windows o MacOS-. Pese a ser un lenguaje muy engorroso, para nuestros primeros pasos es la mejor opción. Vamos a empezar haciendo un simple programa de Hello World! . Este es el programa por excelencia en cualquier lenguaje. Es el más simple que se puede crear, simplemente genera el mensaje "Hello World!" por algún modo de visualización. En estos primeros pasos no vamos a utilizar interfaces gráficas, por lo que de lo único que disponemos es de nuestro viejo amigo el terminal -sí, esa pantalla negra con letras por todos lados que suele asociarse con los hackers-.  Para empezar a programar necesitamos un entorno de desarrollo. Por el momento os recomiendo utilizar alguna herramienta online como esta , aunque...

Comenzando a programar: Funciones

Programación: Funciones Hola, futuros programadores. Ya hemos visto que es una función y hemos trabajo con ellas. Con la función main . Las funciones tienen un nombre, pueden tener -o no- unos valores de entrada y uno -o ningún- valor de salida. Así dicho puede sonar muy genérico o abstracto, pero veremos que es muy sencillo. Las funciones, al igual que las variables, es necesario declararlas para posteriormente utilizarlas. En su declaración se especifica el tipo de variable que va a retornar al finalizar su ejecución -o void si no retornará valor alguno-, el nombre de dicha función, una serie de variables de entrada (con tipo de variable y nombre que va a tener dentro de la función para referirse a ella) y el código a ejecutar. En el caso de C y de muchos otros lenguajes la sintaxis es similar a la siguiente: int suma ( int var1, int var2 ){     return var1 + var2; } Es una función muy simple. Se llama suma , va a retornar un valor int , sus valor...