Bucles

> Temas > Bucles
Editar

Los bucles son una estructura de control de lenguajes de programación usada para realizar repeticiones. Mediante los bucles podemos realizar la ejecución de una o varias sentencias de manera repetida.

En programación realizamos continuamente bucles para implementar algoritmos de todo tipo, desde los más básicos hasta los más complejos. De hecho, para la informática, el tratamiento automatizado de la información, los bucles son un elemento esencial, ya que nos permite iterar y realizar tratamientos y operaciones por conjuntos y estructuras de datos.

Encontramos bucles en la programación, pero también en la vida real. Por ejemplo, si tengo que lavar los platos de la cena, realizaré una repetición de "lavar 1 plato", tantas veces como platos tenga para lavar. Para subir una escalera, realizaré la repetición de "subir un escalón", tantas veces como escalones haya en la escalera.

Más información:

Bucles

Por qué son útiles los bucles

Tomando el ejemplo de lavar una pila de platos, suponiendo que en la pila hay 4 platos para lavar, podría lanzar estas sentencias en un lenguaje inventado:

lavarPlato;
lavarPlato;
lavarPlato;
lavarPlato;

Estamos viendo la misma sentencia "lavarPlato" repetida por 4 veces. Con esa secuencia de acciones habría conseguido mi tarea de lavar la pila de platos y no habría necesitado usar ningún bucle. Sin embargo, trabajar de esta manera tiene serios inconvenientes:

  1. Ese algoritmo me serviría para lavar 4 platos, pero ¿qué pasa si tengo 5 platos, o 10? entonces me vería obligado a modificar el código de mi programa para añadir más sentencias, o quitarlas, para completar la tarea de manera eficaz y eficiente.
  2. En informática es habitual que las repeticiones se hagan decenas, cientos o miles de veces, por lo que no vamos a escribir la misma sentencia hasta aburrirnos, pues sería un gasto de tiempo innecesario y el código de los programas sería muy largo.

Para resumir esas sentencias y poder ajustarnos a cualquier número de platos usamos los bucles.

repetir {
    lavarPlato
} mientras_que(Quedan_platos_en_la_pila)

Gracias al bucle queda muy claro qué es lo que se quiere hacer de manera repetida y cuántas veces se va a repetir, o mejor dicho, cuál es la condición para que siga repitiendo las acciones. Además, el mismo código me serviría para lavar 4 platos o 4.000.

Editar

Qué partes componen un bucle

En programación debemos especificar de manera precisa todos los pasos necesarios para completar una tarea. Por eso, a la hora de programar es importante tener claro cómo definir un bucle, para que podamos implementarlos correctamente al escribir los algorimos para nuestros programas.

Tenemos primero veamos los bloques principales de un bucle.

  • Definición de las características de la repetición
  • Cuerpo de la repetición, que son las sentencias que se van a repetir.

Cuerpo del bucle

El cuerpo del bucle es muy fácil de identificar. Contiene una o más sentencias que necesitamos repetir en cada ejecución del bucle. Por ejemplo, para el caso de los platos, quizás la repetición incluya varias sentencias si somos más detallistas.

repetir {
    cogerUnPlatoDeLaPila;
    enjabonarElPlato
    aclararElPlato
    dejarElPlatoEscurriendo
} mientras_que(Quedan_platos_en_la_pila)

En muchos lenguajes de programación el cuerpo de la repetición se expresa entre llaves. Con ellas englobamos el bloque de sentencias que se van a repetir.

Características de la repetición

Las características de la repetición nos permiten controlar el número de veces que se ejecutarán las sentencias del cuerpo del bucle, es decir nos permiten definir cuántas veces se va a iterar, o si se va a repetir el bucle hasta que se cumpla cierta condición.

Al iniciarnos en la programación e implementar los primeros bucles es posible que nos resulte difícil encontrar la manera de expresar las características de las repeticiones, por eso es ideal tener claro cuáles son. Dependiendo del lenguaje de programación y de la estructura de control para repetición que estemos usando, las características del bucle se podrán expresar de distintas formas, pero de manera implícita o explícita siempre se deben indicar las mismas cosas.

  • Inicialización del bucle
  • Condición que debe cumplirse para continuar repitiendo el bucle
  • Incremento, decremento, o varianza a realizar para cada repetición

¿Por qué necesitamos expresar todo esto? Recordemos que para definir algoritmos es necesario dar instrucciones precisas a los ordenadores. Si yo le pido a alguien "lava los platos de la pila", esa persona sabe de manera implicita que tendrá que comenzar por el primer plato y terminar con el último. Sin embargo, un ordenador no da por entendido nada, con lo que debemos ser muy precisos.

Si le pedimos a un ordenador "Saluda 10 veces", necesitaremos aportarle al algoritmo la forma de contar esos 10 saludos, de modo que pueda realizar su tarea y parar exactamente cuando la haya completado.

En los casos más básicos la cuenta de las repeticiones la llevaremos con una variable, que iremos incrementando en cada iteración para saber hasta dónde tenemos que repetir las sentencias del cuerpo del bucle. Por ejemplo contaremos hasta 10, inicializando en 1 e incrementando la variable de uno en uno en cada iteración del buble, para parar cuando se haya realizado el saludo exactamente las 10 veces que nos han pedido.

Para el ejemplo de saludar 10 veces tendremos las siguientes características de la repetición:

  • Inicialización: crear una variable con el valor 1
  • Condición para continuar el bucle: que la variable no haya llegado a superar 10
  • Varianza: aumentaremos la variable en 1 en cada repetición

Usualmente esas características de la repetición se expresan en la cabecera del bucle, pero eso depende del lenguaje o del tipo de estructura de repetición que estemos usando.

Editar

Bucle for

El bucle for es una de las estructuras de repetición más clásicas y usadas en infinidad de lenguajes de programación, como Javascript y muchos otros: Java C o C#...

El bucle for es especialmente interesante porque es el que mejor representa estas características que definen todo bucle.

La sintaxis de la estructura de repetición for es la siguiente:

for (inicialización; condición_para_continuar; varianza) {
    // cuerpo del bucle con las sentencias a repetir
}

Teniendo claro el ejemplo "saluda 10 veces" y las características de la repetición que hemos comentado, vamos a observar cómo se implementaría este ejemplo en el lenguaje Javascript:

for (var i = 1; i <= 10; i++) {
    console.log("Hola");
}

La inicialización consiste en crear una variable a la que asignamos el valor 1. Nuestra variable se llama "i", pues es una costumbre habitual usar ese nombre de variable para las repeticiones. Pero podríamos haberla llamado de cualquier otra manera.

var i = 1;

La condición de parada será que no hayamos sobrepasado las 10 repeticiones, lo que se traduce en que debemos continuar siempre que la variable i sea menor o igual a 10.

i <= 10

Por último, la varianza consiste en incrementar de 1 en uno la variable i, con la que llevamos la cuenta de las repeticiones que hemos realizado ya.

i++

Si hemos entendido estos pasos, estamos en disposición de hacer cualquier tipo de bucle.

Editar

¿Quieres añadir algo sobre Bucles?

Crea artículos, recursos o comparte información sobre Bucles

Crear un bloque

Preguntas y respuestas de Bucles

Se han recibido 0 faqs en Bucles

Hacer una pregunta