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 3 # /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 5
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 * 5
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 2
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 * 5
Next