IBM Lotus Symphony
|
Repite las instrucciones que se encuentran en el bloque For...Next un número determinado de veces.
For contador=inicio To final [Step incremento]
bloque de instrucciones
[Exit For]
bloque de instrucciones
Next [contador]
Contador: Contador de bucle al que se asigna inicialmente el valor de la derecha del signo igual (inicio). Sólo las variables numéricas son válidas. El contador de bucles aumenta o disminuye según la variable Incremento hasta que se alcanza el valor final.
Inicio: Variable numérica que define el valor inicial al principio del bucle.
Final: Variable numérica que define el valor final cuando termina el bucle.
Incremento: Define el valor con el que incrementar o decrementar el contador del bucle. Si Incremento no se especifica, el contador del bucle se incrementa en 1. En ese caso, Final debe ser mayor que Inicio. Si desea reducir el Contador, Final debe ser inferior a Inicio e Incremento debe tener asignado un valor negativo.
El bucle For...Next repite todas las instrucciones del bucle tantas veces como especifiquen los parámetros.
A medida que la variable contador disminuye, Lotus® Symphony™ Basic comprueba si se ha alcanzado el valor final. Tan pronto como el contador llega al valor final, el bucle finaliza automáticamente.
Es posible anidar instrucciones For...Next. Si no especifica una variable que siga a la instrucción Next, Next se refiere automáticamente a la instrucción For más reciente.
Si se especifica un incremento 0, las instrucciones entre For y Next se repiten indefinidamente.
Al realizar la cuenta atrás con la variable de contador, Lotus Symphony Basic comprueba que no produzca un desbordamiento y subdesbordamiento. El bucle termina cuando el Contador supera a Final (valor de Incremento positivo) o es inferior a Final (valor de Incremento negativo).
La instrucción Exit For se utiliza para salir del bucle incondicionalmente. Esta instrucción debe estar incluida dentro del bucle For...Next. Use la instrucción If...Then para comprobar la condición de salida de la forma siguiente:
For...
instrucciones
If condición = Cierta Then Exit For
instrucciones
Siguiente
Nota: en los bucles anidados For...Next, si se sale de un bucle de forma incondicional con Exit For, sólo se sale de un bucle.
El ejemplo siguiente usa dos bucles anidados para ordenar una matriz de cadenas con 10 elementos ( sEntry() ) que primero se rellenan con varios contenidos:
Sub EjemploOrdenar
Dim sEntrada(9) As String
Dim iContador As Integer
Dim iContador2 As Integer
Dim sTemp As String
sEntrada(0) = "Juan"
sEntrada(1) = "Patricia"
sEntrada(2) = "Koldo"
sEntrada(3) = "Tomás"
sEntrada(4) = "Miguel"
sEntrada(5) = "David"
sEntrada(6) = "Catalina"
sEntrada(7) = "Susana"
sEntrada(8) = "Eduardo"
sEntrada(9) = "Cristina"
For iContador = 0 To 9
For iContador2 = iContador + 1 To 9
If sEntrada(iContador) > sEntrada(iContador2) Then
sTemp = sEntrada(iContador)
sEntrada(iContador) = sEntrada(iContador2)
sEntrada(iContador2) = sTemp
End If
Next iContador2
Next iContador
For iContador = 0 To 9
Print sEntrada(iContador)
Next iContador
End Sub