5 -Ciclo Para (For Loop)

For Loop


   Un "Ciclo" es una parte del programa que se repite, y en BASIC, se utiliza para ello la órden "For":



# /repetimos un saludo


For i = 1 To# /repite de uno a 3

   Print "Hola"

   Print "mundo"

next 



# /saluda 2 veces y se despide

For i = 1 To 2 # /repite de 1 a 2

   Print "Hola"

   Print "mundo,"

Next i

   Print "Chau."


   For se traduce como un "Desde" o "Para", entonces sería:

 

 (Desde  o Para) la variable " i ", que  vale 1 , "hasta que " i " valga: 10

 

   Estamos usando una variable auxiliar " i " (aunque podría llevar cualquier letra o  nombre), que comienza valiendo 1, y entonces una parte del código que determinamos como ciclo, se repite hasta que esa misma variable " i " valga 10, aumentando de 1 en 1.




Resultado:


Hola  

mundo,  

Hola  

mundo,  

Chau.



   Es frecuente emplear "For" para contar, aprovechando que la variable aumenta desde un valor que indicamos hasta el otro. 


Ejemplo:


# /repite de 1 a 5  

For var_n = 1 To

   Print var_n 

Next var_n



Resultado:

1  

2  

3  

4  

5  

 



Podemos escribir la tabla de multiplicar del 5 así:


# /tabla de multiplicar

For var_factor = 1 To 10 

   Print "5 x "; var_factor; " vale: "; 

   Print var_factor *

Next var_factor


Resultado:


5 x 1 vale: 5  

5 x 2 vale: 10  

5 x 3 vale: 15  

5 x 4 vale: 20  

5 x 5 vale: 25  

5 x 6 vale: 30  

5 x 7 vale: 35  

5 x 8 vale: 40  

5 x 9 vale: 45  

5 x 10 vale: 50 



Para contar de uno en uno usamos la orden Step (Paso). 



Podemos escribir los número pares del 2 al 20 así:


# /números pares del 1 al 20 

For var_n = 2 To 20 Step

   Print var_n 

Next var_n



Podemos contar "hacia atrás", si usamos pasos negativos:


# /cuenta regresiva de 10 hasta 0

For var_x = 10 To 0 Step -1 

   Print var_x 

Next var_x



Andamiento de ciclos


   Podemos incluir un For dentro de otro For. Por ejemplo, podríamos escribir la tabla de multiplicar  de todos los números del 1 al 10:



# /tabla de multiplicar completa 

For v_tabla = 1 To 10 

For v_factor = 1 To 10 

   Print v_tabla; " x "; v_factor; " vale: "; 

   Print v_tabla * v_factor 

Next v_factor 

   Print :  # /linea en blanco 

Next v_tabla


Resultado:


1 x 1 vale: 1  

1 x 2 vale: 2  

1 x 3 vale: 3


[... (etc.) ...]


9 x 7 vale: 63  

9 x 8 vale: 72  

9 x 9 vale: 81  

9 x 10 vale: 90


10 x 1 vale: 10  

10 x 2 vale: 20  

10 x 3 vale: 30  

10 x 4 vale: 40  

10 x 5 vale: 50  

10 x 6 vale: 60  

10 x 7 vale: 70  

10 x 8 vale: 80  

10 x 9 vale: 90  

10 x 10 vale: 100 



En muchas versiones de Basic nohace falta detallar el nombre de la variable despues de "Next" (el intérprete de BASIC lo deduce):


# /números pares del 1 al 20 

For v_n = 2 To 20 Step 2 

   Print v_n 

Next 

# /se entiende que luego de Next viene "v_n"




(Pero en programas grandes, sirve mucho conservar el nombre de la variable para mejorar la legibilidad).



Otra forma de escribir una tabla de multiplicar:


# /tabla de multiplicar del 5 

For var_fact = 1 To 10 

   ? "5 x "; var_fact; 

   ? " vale: "; var_fact *

Next