For...Next Statement

Repeteix les expressions entre el bloc For..Next un número especificat de vegades.

Sintaxi:

For counter=start To end [Step step]

bloc d'expressió

[Exit For]

bloc d'expressió

Next [counter]

Variables:

Counter: El comptador de bucle inicialment assignat al valor de la dreta del signe igual (inici). Només són vàlides les variables numèriques. El comptador de bucle augmenta o disminueix segons la variable Step fins que passa End.

Start: Variable numèrica que defineix el valor inicial al principi del bucle.

End: Variable numèrica que defineix el valor final al final del bucle.

Step: Defineix el valor pel qual cal incrementar o reduir el comptador de bucles. Si no s'especifica Step, el comptador de bucles s'incrementa per 1. En aquest cas, End ha de ser superior a Start. Si voleu reduir el comptador, End ha de fer inferior a Start, i s'ha d'assignar un valor negatiu a Step.

El bucle For...Next repeteix totes les expressions del bucle per al nombre de vegades que s'especifica als paràmetres.

A mesura que la variable de comptador disminueix, el LibreOffice Basic comprova si s'ha assolit el valor final. Tan aviat com el comptador passa el valor final, el bucle finalitza automàticament.

Es poden imbricar expressions For...Next. Si no especifiqueu una variable que segueixi l'expressió Next, Next fa referència automàticament a l'expressió For més recent.

Si especifiqueu un increment de 0, les expressions entre For i Next es repeteixen contínuament.

En comptar enrere la variable de comptador, el LibreOffice Basic comprova el desbordament o el valor inferior al desbordament. El bucle acaba quan el comptador supera End (valor de Step positiu) o és inferior a End valor de Step negatiu).

Utilitzeu l'expressió Exit For per sortir incondicionalment del bucle. Aquesta expressió ha d'estar a dins d'un bucle For...Next. Utilitzeu l'expressió If...Then per provar la condició de sortida de la forma següent:

Per a...

expressions

If condition = True Then Exit For

expressions

Següent

Nota: En bucles For...Next imbricats, si sortiu d'un bucle incondicionalment amb Exit For, només se surt d'un bucle.

Exemple

A l'exemple següent s'utilitzen dos bucles imbricats per ordenar una matriu de cadenes amb 10 elements ( sEntry() ), que s'omplen primer amb diferents continguts:

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sEntry(0) = "Jaume"

    sEntry(1) = "Patri"

    sEntry(2) = "Joan"

    sEntry(3) = "Tomàs"

    sEntry(4) = "Miquel"

    sEntry(5) = "David"

    sEntry(6) = "Cati"

    sEntry(7) = "Sandra"

    sEntry(8) = "Eduard"

    sEntry(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