¿Qué es un BUCLE en programación? – Teoría de programación

El bucle es una ESTRUCTURA DE CONTROL repetitiva que nos permite repetir una secuencia de instrucciones hasta que una condición deje de ser verdadera.

En un programa de computadora las instrucciones se van ejecutando instrucción por instrucción de manera secuencial, esto es lo que se conoce como flujo de un programa. Las estructuras de control nos permiten alterar este flujo de ejecución, permitiéndonos hacer saltos, hacer que el flujo retroceda o se desplace hacia otra región.

Entonces un BUCLE en programación es una estructura de control que hace que el flujo del programa retroceda y vuelva a repetir exactamente las mismas instrucciones definidas en una región, no se trata solo de una forma elegante y compacta de escribir una serie de instrucciones, porque el hecho de que las instrucciones sean exactamente las mismas no significa que los datos que se usan en el interior del bucle también lo sean, la información puede ir transformándose y luego las instrucciones siguientes se aplicarán sobre esos nuevos datos, dando lugar a una enorme cantidad de posibilidades.



Tengo un vídeo para recomendarte sobre este tema

En el siguiente vídeo, con la ayuda de un bucle FOR se recorren todos los CHILDS de un determinado objeto y se los guarda en un ARRAY.




¿Qué es un BUCLE INFINITO en programación?

Un bucle infinito es una situación en la que el flujo del programa se encuentra confinado en una región de la que no puede escapar, repitiendo infinitamente las mismas instrucciones una y otra vez, sin llegar a una condición que le permita salir de ese bucle.

Cuando se produce un bucle infinito las aplicaciones se pueden congelar, no responden y hay que forzar su cierre. Esto ocurre generalmente porque el código que permite procesar las intereacciones del usuario, por ejemplo clics en pantalla o inputs de teclado, no se está ejecutando ya que el flujo del programa está atrapado en el bucle. En aplicaciones como juegos donde toda la lógica se procesa entre cada foto que se produce del juego, si ocurre un bucle infinito, el flujo del programa no termina de procesar la lógica y el juego no puede producir la siguiente foto.

Se pueden aplicar medidas de seguridad para evitar que se produzcan estos bucles, por ejemplo contadores que se incrementen y si exceden un valor, forzar la condición de escape del bucle.

Estructuras de control REPETITIVAS y sintaxis

A continuación vamos a ver las estructuras de control repetitivas más comunes que se encuentran en todos los lenguajes de programación.

Bucle FOR

Un bucle FOR nos permite repetir instrucciones un número fijo de veces que indicamos con una serie de condiciones sobre una variable iteradora. Se establece la variable iteradora, el valor inicial, la condición que debe cumplir la variable iteradora para ejecutar el bucle y una forma de incremento para la variable iteradora.

Algunas aplicaciones pueden ser recorrer una colección de objetos aplicando acciones a cada uno de ellos y haciendo uso de la variable iteradora de distintas formas, podemos realizar operaciones como sumatorias y productorias, encontrar valores dentro de una colección, algoritmos de ordenamiento.

Un bucle FOR no suele producir bucles infinitos, a menos que sus condiciones se planteen de forma incorrecta o se modifique la variable iteradora dentro del bucle de una forma que produzca tal situación, no es una buena práctica modificar la variable iteradora dentro de un bucle for.



Sintaxis del Bucle FOR

Sea n un valor entero como por ejemplo el tamaño de una colección, la sintaxis del bucle FOR en C# es la siguiente:

for(int i=0; i<n ; i++){
//Instrucciones a realizar dentro del bucle

//La variable i se incrementa en cada iteración
}

Bucle WHILE

Un bucle WHILE nos permite repetir instrucciones hasta que una determinada condición deje de ser verdadera, es muy útil cuando no se sabe cuántas veces habrá que repetir una tarea hasta que consigamos lo que necesitamos.

Una posible aplicación puede ser la selección de números aleatorios o de objetos sin reposición, en la que tenemos que elegir valores aleatoriamente sin repetir, en ese caso siempre existe la probabilidad de elegir un valor que antes se había elegido, de modo que puede ser necesario repetir la operación hasta dar con un valor nuevo.

En un bucle WHILE es más frecuente que se produzcan bucles infinitos ya que la condición de salida del bucle depende de lo que necesitemos en cada caso particular.

Sintaxis del bucle WHILE

Dada la variable “condicion”, que es un valor booleano que puede estar dado por el valor de una variable booleana, podría ser el resultado de una operación lógica o también el resultado de la ejecución de un método de programación, la sintaxis de un bucle WHILE en C# es la siguiente

while(condicion){
//Instrucciones a realizar dentro del bucle

//”condicion” debe cambiar a false para salir
}

Bucle FOREACH

Un bucle FOREACH sirve para recorrer cada uno de los elementos de una colección, por ejemplo un array o una lista, la idea es que dentro del bucle tenemos la referencia de cada uno de los objetos pero sin la necesidad de una variable de iteración.

Como ejemplo de aplicación puede ser cualquier tarea que requiera recorrer una colección de elementos, por ejemplo dada una colección de objetos enemigo, aplicarles a cada uno de ellos un determinado daño por magia. Otro ejemplo puede ser aplicarles una cierta configuración inicial a un conjunto de elementos.

Un bucle FOREACH no suele producir bucles infinitos, a menos que haya alguna forma de incrementar la cantidad de elementos de la colección que se está recorriendo dentro del mismo bucle, eso haría que en cada iteración agregáramos un nuevo elemento para recorrer y nunca acabaríamos.



Sintaxis del bucle FOREACH

Para este ejemplo vamos a considerar una clase de programación cualquiera que llamaremos “TipoDato”, vamos a usar la palabra “o” para referirnos a cada elemento dentro de la colección a recorrer y por último vamos a usar una colección de objetos que llamaremos “coleccion” y que será del mismo tipo que “TipoDato” , la sintaxis de un bucle FOREACH en C# es la siguiente:

foreach(TipoDato o in coleccion){
//Instrucciones a realizar dentro del bucle

//”o” es cada elemento de la colección
}

En el siguiente ejemplo se recorre una colección de GameObjects que representan enemigos en un juego hipotético y se procede a destruir cada uno de esos objetos.

foreach(GameObject g in enemigos){
Destroy(g);
}

Scroll al inicio
Secured By miniOrange