Press "Enter" to skip to content

Bucles, Ciclos o Loops en Programación: ¿Qué son? ¿Qué tipos hay?


¿Qué son los Bucles , Ciclos o Loops?

Los Bucles son estructuras que se incorporan en el código de un proyecto como Estructuras de Control, ya que permiten controlar el flujo de ejecución de un proyecto, posibilitando que un código específico se repita múltiples veces, basándose en ciertas condiciones, cuya sintaxis puede ser diferente para cada lenguaje de programación.

Bucle «FOR» o «FOR-NEXT»

Los Bucles «FOR» o «FOR-NEXT» utilizan una variable que incremeta o disminuye su valor en cada repetición, ejecutando el código dentro que haya dentro e él mientras el valor de la variable este dentro de un rango indicado. Un ejemplo expresado en pseudocódigo podría ser este:

EJECUTA MIENTRAS SE GUARDA "valor" EN "variable" DESDE "valor >= valorInicioRango" HASTA "valor <= valorFinRango" Y EN CADA REPETICION "valor" CAMBIA

    Código a ejecutar en cada Repetición

FINAL DE UNA REPETICIÓN

Aunque existen lenguajes de programación que ofrecen un bucle «FOR» para recorrer colecciones de datos de forma que en cada repetición se analiza un dato diferente de la colección, guardándolo temporalmente en la variable utilizada en este bucle. Un ejemplo en pseudocódigo podría ser este:

EJECUTA HASTA FINAL COLECCION DATOS, GUARDA EN "variable" DATO ANALIZADO EN CADA REPETICIÓN 

    Código a ejecutar en cada Repetición

FINAL DE UNA REPETICIÓN

Bucle «WHILE»

Los Bucles «WHILE» repiten un código mientras se cumple una condición específica. comprobando esta condición antes de ejecutar el código de su interior. Un ejemplo en pseudocódigo podría ser este:

EJECUTA REPETICIÓN SI CONDICIÓN = verdadera

    Código a ejecutar en cada Repetición

FIN REPETICIÓN, COMPRUEBA CONDICIÓN 

Bucle «DO» o «DO-WHILE»

Similar al bucle «WHILE», los Bucles «DO» o los Bucles «DO-WHILE» repiten un código mientras se cumple una condición específica, pero primero ejecutan el código de su interior y luego comprueban si la condición se cumple. Esto permite que almenos el código de su interior se ejecute una vez. Un ejemplo en pseudocódigo podría ser este:

EJECUTA

    Código a ejecutar en cada Repetición

FIN EJECUCIÓN, REPITE EJECUCIÓN SI CONDICIÓN = verdadera

Bucle «UNTIL»

Los Bucles «UNTIL» funcionan de manera similar a «WHILE» y «DO-WHILE», pero se ejecutan mientras la condición NO se cumple. Unos ejemplos en pseudocódigo de estos Bucles podrían ser estos:

EJECUTA REPETICIÓN SI CONDICIÓN = falsa

    Código a ejecutar en cada Repetición

FIN REPETICIÓN, COMPRUEBA CONDICIÓN 
EJECUTA

    Código a ejecutar en cada Repetición

FIN EJECUCIÓN, REPITE EJECUCIÓN SI CONDICIÓN = falsa

Bucles Colecciones datos «FOR EACH», «FOR-IN», «FOR-OF»

Estos bucles son ideales para recorrer colecciones de datos, como arrays o listas. Su estructura puede variar según el lenguaje, pero en general, permiten manipular cada elemento de la colección en cada repetición, utilizando una estructura expresada con un pseudocódigo similar a este:

EJECUTA REPETICIÓN POR CADA ELEMENTO DE UNA COLECCION DE DATOS

    Código a ejecutar en cada Repetición

FIN REPETICIÓN

Intrucciones BREAK y CONTINUE

Dos instrucciones clave que permiten forzar la interrupción de la ejecución normal de un bucle son «BREAK» y «CONTINUE«.

En la mayoría de los lenguajes, cuando coloquemos una instrucción «BREAK» dentro de un bucle, al ejecutar esta instrucción, el bucle dejará de repetirse de forma repentina, continuando la ejecución del código que haya justo después del bucle.

En cambio, con la instrucción «CONTINUE«, cuando se ejecuta, el bucle detiene la repetición que se está ejecutando actualmente y continúa con la siguiente repetición.

Precauciones y Consideraciones

Al trabajar con bucles, es esencial manejarlos con precaución para evitar crear Bucles Infinitos, es decir, bucles cuya ejecución nunca se acaba, ya que estos bucles infinitos al ejecutarse interminablemente , en la mayoría de casos, pueden provocar bloqueos en la aplicación o incluso en el dispositivo. Por ello, para evitar crear estos bucles infinitos, deberemos tener cuidado en escoger correctamente la condición de parada de cada bucle.

Aunque se aconseja evitar a toda costa la creación de bucles infinitos, hay situaciones en las que nos vemos obligados a recurrir a ellos, ya que puede que no conozcamos el momento preciso para finalizar su ejecución. Para estos casos excepcionales, la mayoría de los lenguajes de programación ofrecen las instrucciones BREAK y CONTINUE que permiten alterar el flujo de ejecución de un bucle de manera abrupta.

Anidación de Bucles

Cuando trabajemos con bucles, debemos saber este tipo de estructuras permiten crear estrcturas complejas introduciendo otras estructuras repetitivas o condicionales anidadas dentro de ellas, por ejemplo, de esta forma,

Inicio Bucle1

    Inicio Bucle2

           Código Bucle2

    Fin Bucle2

Fin Bucle1

o también de esta forma,

Inicio Bucle1

    Código Bucle1

    Inicio Bucle2

           Código Bucle2

    Fin Bucle2

    Más Código Bucle1

Fin Bucle1

¿Y qué sucede cuando metemos un Bucle dentro de otro?

Pues bien, en este caso, el bucle que actúa como bucle padre o bucle contenedor ejecutará en cada una de sus repeticiones el código que haya en su interior y cuando tenga que ejecutar el bucle hijo, este bucle hijo se repetirá hasta finalizar su ejecución,dejando en pausa la ejecución del bucle padre.

Y cuando finalice la ejecución del bucle hijo,continuará la ejecución del bucle padre, es decir, el bucle padre ejecutará una repetición y cuando llegue al bucle hijo,este bucle hijo se repetirá hasta finalizar su ejecución, y una vez finalizada la ejecución del bucle hijo,continuará ejecutándose la repetición del bucle padre

y cuando la ejecución del código del bucle padre llega al final, comprobará si este bucle padre debe repetirse otra vez o bien debe finalizar su ejecución, y esto provocaría que sus bucles internos ya no vuelvan a ejecutarse otra vez.

Video explicativo Bucles, Loops, Ciclos en Programación

Si queréis, podeis ver una explicación mas detalla en este video: