Ciclo For

 

Ciclo For (Visual basic)


La estructura repetitiva de For es uno de los bucles mas usados en la programacion, su planeamiento sencillo y es ideal para usar en aquellas situaciones en la que conocemos la cantidad de veces que queremos que se repita nuestro bucle de instrucciones. Con el ciclo for, repetimos una instruccion un numero determinado de veces, hasta un punto que hemos establecido. Las estruccturas de bucle de Visual Basic permiten ejecutar una o varias lineas de codigo de forma repetitiva. Puede repetir la instrucciones de una estrucctura de bucle hata que una condicion sea true, hasta que una condicion sea false, un numero especificado de veces o una vez para cada elementode una coleccion.La construcción For...Next realiza el bucle un número establecido de veces. Usa una variable de control de bucle, también denominada counter, para realizar un seguimiento de las repeticiones. Se especifican los valores inicial y final de este contador y, opcionalmente, puede especificar la cantidad en la que aumenta de una repetición a la siguiente. 

Vamos a concentrarnos ahora en entender las partes que determinan el comportamiento del bloque For:
El secreto está en la instrucción que inicia el ciclo (For)

Primero vamos a recordar algo sobre la definición de variable:
Las variables son una forma de identificar una porción de memoria en donde hemos alhojado un dato. Para no tener que recordar la dirección física de memoria en donde fue guardado el dato, le damos un identificador, además en BASIC el identificador puede estar acompañado de un símbolo reservado para especificar el tipo de datos ($ para texto, % para números enteros, etc). El tipo de datos también puede ser pre-determinado en la declaración de la variable.

Bien, volvamos ahora a lo nuestro: 
Las partes de la definición de un ciclo FOR:

For i = 1 to 10

i: el identificador del ciclo. A este tipo de variables (los identificadores usados en los ciclos For) se las conoce por el nombre de "acumulador". A esta variable se le sumará 1 por cada vuelta del ciclo, y el resultado de esa suma será guardado en la misma variable. De esta manera sabremos porque vuelta vamos cada vez que vuelve a la instrucción For. Si una de las instrucciones del ciclo cambia el valor de esta variable, habrá un conflicto dentro del ciclo y tal vez no puedan completarse todas las vueltas del ciclo. Es por esto que al acumulador podemos usarlo para evaluar su contenido unicamente (usarlo en un bloque if) pero no podemos guardar datos en él. Dentro del bloque For el acumulador es una variable reservada. Por esta razón es bueno que te acostumbres a usar siempre un mismo identificador para los ciclos for (el caso mas común es la letra 'i') y que solo uses ese identificador para bloques For...Next y no para otra cosa.

1 to 10: El rango del ciclo. Obviamente el primer número es el valor de i al inicio del ciclo y el segundo es el valor que deberá tener i antes de salir del ciclo. Es decir, si el ciclo va de 0 a 10, se ejecutará 11 veces (atencion!). Como corolario de esta parte, los valores del rango del ciclo pueden ser cualquier número entero. O sea, podes definir un rango entre:
  -1 to 1 (3 vueltas)
  -10 to 9 (20 vueltas)
   0 to 1 (2 vueltas)

Next i: Cuando el ciclo For fue iniciado, la ejecución continúa hasta el próximo Next que esté acompañado del mismo identificador que lo inició (i). O sea, si iniciamos el bloque For con el identificador my_counter (For my_counter = 1 to 100) y al final del bloque ponemos Next i, no habrá coherencia en el ciclo y se producirá un error.

La flexibilidad del ciclo For...Next:
Se puede afirmar que el ciclo For es muy flexible dadas las posibilidades que ofrece para configurarlo dinámicamente durante la ejecución (¿?).

Hasta ahora, el único identificador que vimos interviniendo en el bloque fue el acumulador (i). Pero puede haber más. El rango puede estar definido por identificadores que recibirán valores en otros procedimientos del programa.

Más sobre el tema: Pseudocódigo y diagrama de flujo (ciclo for)

Comentarios

Publicar un comentario