Instrucción For… Next

Repite las instrucciones que se encuentran en el bloque For...Next un número determinado de veces.

Sintaxis:


For contador=inicio To final [Step incremento]
bloque de instrucciones
[Exit For]
bloque de instrucciones
Next [contador]

Variables:

Contador: contador de bucle al que se asigna inicialmente el valor de la derecha del signo igual (inicio). Solo son válidas las variables numéricas. 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 decrementar 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 de contador se decrementa, LibreOffice Basic comprueba si se ha llegado al valor final. Tan pronto como el contador llega al valor final, el bucle finaliza automáticamente.

Se pueden anidar instrucciones For...Next. Si no se especifica ninguna variable después de la instrucción Next, Next hace referencia 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 Contador, LibreOffice Basic comprueba que no se produzca un desbordamiento o vacuidad. 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

Next

Nota: En bucles For...Next anidados, si se sale de un bucle de forma incondicional con Exit For, sólo se sale de un bucle.

Ejemplo

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 ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
    sEntrada(0) = "Juan"
    sEntrada(1) = "Patricia"
    sEntrada(2) = "Kurt"
    sEntrada(3) = "Tomás"
    sEntrada(4) = "Miguel"
    sEntrada(5) = "David"
    sEntrada(6) = "Catalina"
    sEntrada(7) = "Susana"
    sEntrada(8) = "Eduardo"
    sEntrada(9) = "Cristina"
    For iCount = 0 To 9
        For iCount2 = iCount + 1 To 9
            If sEntry(iCount) > sEntry(iCount2) Then
                sTemp = sEntry(iCount)
                sEntry(iCount) = sEntry(iCount2)
                sEntry(iCount2) = sTemp
            End If
        Next iCount2
    Next iCount
    For iCount = 0 To 9
        Print sEntry(iCount)
    Next iCount
End Sub

¡Necesitamos su ayuda!