Expressió For… Next

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 a sortir incondicionalment del bucle. Aquesta expressió ha d'estar a dins d'un bucle For...Next. Utilitzeu l'expressió If...Then per a 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

Ens cal la vostra ajuda!