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

El bucle es una estruc­tura de con­trol repet­i­ti­va que nos per­mite repe­tir una secuen­cia de instruc­ciones has­ta que una condi­ción deje de ser verdadera.

En un pro­gra­ma de com­puta­do­ra las instruc­ciones se van eje­cu­tan­do instruc­ción por instruc­ción de man­era secuen­cial, esto es lo que se conoce como flu­jo de un pro­gra­ma. Las estruc­turas de con­trol nos per­miten alter­ar este flu­jo de eje­cu­ción, per­mi­tién­donos hac­er saltos, hac­er que el flu­jo retro­ce­da o se desplace hacia otra región. 

Entonces un BUCLE en pro­gra­mación es una estruc­tura de con­trol que hace que el flu­je del pro­gra­ma retro­ce­da y vuel­va a repe­tir exac­ta­mente las mis­mas instruc­ciones definidas en una región, no se tra­ta solo de una for­ma ele­gante y com­pacta de escribir una serie de instruc­ciones, porque el hecho de que las instruc­ciones sean exac­ta­mente las mis­mas no sig­nifi­ca que los datos que se usan en el inte­ri­or del bucle tam­bién lo sean, la infor­ma­ción puede ir trans­for­mán­dose y luego las instruc­ciones sigu­ientes se apli­carán sobre esos nuevos datos, dan­do lugar a una enorme can­ti­dad de posibilidades. 

Con la ayu­da de un bucle FOR se recor­ren todos los CHILDS de un deter­mi­na­do obje­to y se los guar­da en un ARRAY.

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

Un bucle infini­to es una situación en la que el flu­jo del pro­gra­ma se encuen­tra con­fi­na­do en una región de la que no puede escapar, repi­tien­do infini­ta­mente las mis­mas instruc­ciones una y otra vez, sin lle­gar a una condi­ción que le per­mi­ta salir de ese bucle.

Cuan­do se pro­duce un bucle infini­to las apli­ca­ciones se pueden con­ge­lar, no respon­den y hay que forzar su cierre. Esto ocurre gen­eral­mente porque el códi­go que per­mite proce­sar las intereac­ciones del usuario, por ejem­p­lo clics en pan­talla o inputs de tecla­do, no se está eje­cu­tan­do ya que el flu­jo del pro­gra­ma está atra­pa­do en el bucle. En apli­ca­ciones como jue­gos donde toda la lóg­i­ca se proce­sa entre cada foto que se pro­duce del juego, si ocurre un bucle infini­to, el flu­jo del pro­gra­ma no ter­mi­na de proce­sar la lóg­i­ca y el juego no puede pro­ducir la sigu­iente foto.

Se pueden aplicar medi­das de seguri­dad para evi­tar que se pro­duz­can estos bucles, por ejem­p­lo con­ta­dores que se incre­menten y si exce­den un val­or, forzar la condi­ción de escape del bucle.

Estructuras de control REPETITIVAS y sintaxis

A con­tin­uación vamos a ver las estruc­turas de con­trol repet­i­ti­vas más comunes que se encuen­tran en todos los lengua­jes de programación.

Bucle FOR

Un bucle FOR nos per­mite repe­tir instruc­ciones un número fijo de veces que indicamos con una serie de condi­ciones sobre una vari­able iter­ado­ra. Se establece la vari­able iter­ado­ra, el val­or ini­cial, la condi­ción que debe cumplir la vari­able iter­ado­ra para eje­cu­tar el bucle y una for­ma de incre­men­to para la vari­able iteradora.

Algu­nas apli­ca­ciones pueden ser recor­rer una colec­ción de obje­tos apli­can­do acciones a cada uno de ellos y hacien­do uso de la vari­able iter­ado­ra de dis­tin­tas for­mas, podemos realizar opera­ciones como suma­to­rias y pro­duc­to­rias, encon­trar val­ores den­tro de una colec­ción, algo­rit­mos de ordenamiento.

Un bucle FOR no suele pro­ducir bucles infini­tos, a menos que sus condi­ciones se planteen de for­ma incor­rec­ta o se mod­i­fique la vari­able iter­ado­ra den­tro del bucle de una for­ma que pro­duz­ca tal situación, no es una bue­na prác­ti­ca mod­i­ficar la vari­able iter­ado­ra den­tro de un bucle for.

Sintaxis del Bucle FOR

Sea n un val­or entero como por ejem­p­lo el tamaño de una colec­ción, la sin­taxis del bucle FOR en C# es la siguiente:

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

//La vari­able i se incre­men­ta en cada iteración
}

Bucle WHILE

Un bucle WHILE nos per­mite repe­tir instruc­ciones has­ta que una deter­mi­na­da condi­ción deje de ser ver­dadera, es muy útil cuan­do no se sabe cuán­tas veces habrá que repe­tir una tarea has­ta que con­sig­amos lo que necesitamos.

Una posi­ble apli­cación puede ser la selec­ción de números aleato­rios o de obje­tos sin reposi­ción, en la que ten­emos que ele­gir val­ores aleato­ri­a­mente sin repe­tir, en ese caso siem­pre existe la prob­a­bil­i­dad de ele­gir un val­or que antes se había elegi­do, de modo que puede ser nece­sario repe­tir la operación has­ta dar con un val­or nuevo.

En un bucle WHILE es más fre­cuente que se pro­duz­can bucles infini­tos ya que la condi­ción de sal­i­da del bucle depende de lo que nece­site­mos en cada caso particular.

Sintaxis del bucle WHILE

Dada la vari­able "condi­cion", que es un val­or booleano que puede estar dado por el val­or de una vari­able booleana, podría ser el resul­ta­do de una operación lóg­i­ca o tam­bién el resul­ta­do de la eje­cu­ción de un méto­do de pro­gra­mación, la sin­taxis de un bucle WHILE en C# es la siguiente

while(condicion){
//Instrucciones a realizar den­tro del bucle

//"condicion" debe cam­biar a false para salir
}

Bucle FOREACH

Un bucle FOREACH sirve para recor­rer cada uno de los ele­men­tos de una colec­ción, por ejem­p­lo un array o una lista, la idea es que den­tro del bucle ten­emos la ref­er­en­cia de cada uno de los obje­tos pero sin la necesi­dad de una vari­able de iteración.

Como ejem­p­lo de apli­cación puede ser cualquier tarea que requiera recor­rer una colec­ción de ele­men­tos, por ejem­p­lo dada una colec­ción de obje­tos ene­mi­go, apli­car­les a cada uno de ellos un deter­mi­na­do daño por magia. Otro ejem­p­lo puede ser apli­car­les una cier­ta con­fig­u­ración ini­cial a un con­jun­to de elementos.

Un bucle FOREACH no suele pro­ducir bucles infini­tos, a menos que haya algu­na for­ma de incre­men­tar la can­ti­dad de ele­men­tos de la colec­ción que se está recor­rien­do den­tro del mis­mo bucle, eso haría que en cada iteración agregáramos un nue­vo ele­men­to para recor­rer y nun­ca acabaríamos.

MIRA ESTE DESCABELLADO EXPERIMENTO

Sintaxis del bucle FOREACH

Para este ejem­p­lo vamos a con­sid­er­ar una clase de pro­gra­mación cualquiera que lla­mare­mos "TipoDa­to", vamos a usar la pal­abra "o" para referirnos a cada ele­men­to den­tro de la colec­ción a recor­rer y por últi­mo vamos a usar una colec­ción de obje­tos que lla­mare­mos "colec­cion" y que será del mis­mo tipo que "TipoDa­to" , la sin­taxis de un bucle FOREACH en C# es la siguiente:

foreach(TipoDato o in colec­cion){
//Instrucciones a realizar den­tro del bucle

//"o" es cada ele­men­to de la colec­ción
}

En el sigu­iente ejem­p­lo se recorre una colec­ción de GameOb­jects que rep­re­sen­tan ene­mi­gos en un juego hipotéti­co y se pro­cede a destru­ir cada uno de esos objetos.

foreach(GameObject g in ene­mi­gos){
Destroy(g);
}

1 Comment
Inline Feedbacks
View all comments
YouTube
Scroll al inicio
Secured By miniOrange