For Next / Bucle en programación

publicado en: BlitzMax, Programación | 1

En primer lugar, un bucle For Next permite repetir cierta cantidad de líneas de código cuantas veces se especifique. A diferencia de los anteriores mencionados, en este tipo de bucle se establece cuantas veces se repite.

La declaración de este bucle se realiza mediante la palabra reservada “For” ( Para ). Posteriormente se declara una variable que debe tener un valor de inicio y posteriormente se define hasta donde es que cambia de valor con la palabra reservada “To”(a). Ya su clausula de cierre es un simple “Netx”

For Local n:byte = 0 To 10 
   Print ( n )
Next

Como se puede observar, el valor de la variable se inicia en uno, y se establece hasta donde es el máximo que sube. Cada vez que el bucle llega a su clausula de cierre regresa al comienzo y suma el valor de la variable. Cuando llega al número indicado ya no se repite mas el bucle. Además se imprime el valor de la variable las veces que hace el cambio mostrando el resultado en el depurador de BlitzMax NG.

For Next
For Next

Igualmente, se podría usar para imprimir por ejemplo diez veces la palabra “hola mundo”. Esto implica una flexibilidad muy poderosa, pues no tendría que escribir 10 veces el comando “Print” si no que por el contrario, solo se usaría una sola vez.

For Local n:byte = 1 To 10
    Print ("Hola Mundo")
Next

En este punto, piense en un sistema de partículas en un entorno ·3D que simula lluvia. Podría decirle a cada una de las mil partículas que se mueva en determinada dirección, o mejor aún, le podría decir a todas con esta estructura práctica que todas vallan desde arriba hacia abajo. Así se evita que escribir mil líneas de código.

Además existe una variante cuando usamos la palabra reservada “To” y se hace anexando un comando denominado “Step” ( paso ), que implica como se hace el cambio de la variable cada vez que se repite. Con este comando, podemos establecer por ejemplo si el conteo se hace de adelante hacia atrás, o establecer un salto.

For Local n:Int = 10 To 1 Step -1
    Print ( n )
Next

En el anterior ejemplo la variable se inicia en su valor máximo. Seguido de esto, se establece al mínimo al que debe llegar en cada repetición. Para que esto funciona es necesario usar la palabra reservada “Steep” y como parámero ponemos el número 1 en negativo. Indicando que comienza en el número mas alto la variable y comienza a bajar.

Si por ejemplo, se pone otro numero negativo, implicaría que hace un salto hacia atrás y solo se mostrarían números pareces. Esto igualmente aplica si iniciamos desde el número mas bajo hacia el mas alto y se ponen números positivos.

Los bucles For Next y las colecciones

Las colecciones en el entorno de desarrollo de BlitzMax NG pueden ser recorridas mediante los bucles For Next. Esto brinda aún mas poder y flexibilidad al lenguaje.

Local usuarios:String[] =["Bob", "John", "Dani", "Stefany", "Pedro"]
Print ( usuarios[0] )
Print ( usuarios[1] )
Print ( usuarios[2] )
Print ( usuarios[3] )
Print ( usuarios[4] )

La anterior colección tiene almacenada una definida cantidad de nombres. Para acceder a sus datos contenidos en la misma, es posible hacerlo la definida cantidad de elementos accediendo a sus indexes. En este punto esto puede ser muy fácil, pues son muy pocos elementos. Pero si fueran muchos, esto no sería práctico, es entonces que un bucle For Next es muy conveniente.

Así que en primer lugar veremos la primer forma de acceder a este dato. Y es sabiendo que sabemos de por si que la colección tiene cinco elementos.

Local usuarios:String[] =["Bob", "John", "Dani", "Stefany", "Pedro"]

For Local n:byte = 0 To 4
     print( usuarios[n]
Next

El resultado e pantalla es los datos almacenados en la colección. Algo sorprendente, sin embargo existe otra forma y es las más practica. Esto debido a que aquí debemos recordar los elementos declarados en la colección, pero si esos elementos cambian, toca recordar de nuevo ese nuevo valor.

La forma mas practica es usar la palabra reservada “EachIn ” y se establece en lugar de la palabra reservada “To” pero con la siguiente variación, la variable se inicia con esta palabra reservada que busca el valor inicial en la colección y su valor final.

Local usuarios:String[] =["Bob", "John", "Dani", "Stefany", "Pedro"]

For Local n:String = EachIn usuarios
     print( n )
Next

Esto es mucho mas practico, ¿No le parece?.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *