For...Next-instructie

Herhaalt de instructies in het For...Next-blok een gespecificeerd aantal keren.

Syntaxis:

For Teller=Start To Einde [Step Stap]

instructieblok

[Exit For]

instructieblok

Next [counter]

Variabelen:

Teller: Lusteller waarvan de waarde bij het begin rechts van het "is gelijk"-teken (Start) is toegekend. Alleen numerieke variabelen zijn geldig. De lusteller wordt hoger of lager volgens de variabele Stap totdat End wordt gepasseerd.

Start: Numerieke variabele die de beginwaarde waarop de lus moet beginnen definieert.

Einde:: Numerieke variabele die de uiteindelijke waarde waarop de lus moet worden beëindigd, definieert.

Stap: Stelt de waarde in waarmee de lusteller moet worden verhoogd of verlaagd. Als Stap niet gespecificeerd wordt, is de vaste waarde 1. Einde moet groter zijn dan Start in dit geval. Als u Teller wilt verlagen moet Einde lager zijn dan Start en Stap moet een negatieve waarde hebben.

De For...Next lus wordt gebruikt voor het herhalen van alle instructies tussen deze twee sleutelwoorden zo vaak als wordt gespecificeerd door de parameters.

Als de Teller-variabele wordt verlaagd test LibreOffice BASIC of de eindwaarde is bereikt. Zodra de teller de eindwaarde passeert, eindigt de lus automatisch.

Het is mogelijk For...Next-instructies te nesten. Als u geen variabele specificeert volgend op de Next-instructie, verwijst Next altijd automatisch naar de meest recente For-instructie.

Als u een stap van 0 specificeert worden de instructies tussen For en Next voortdurend herhaald.

Tijdens het terugtellen van de Teller-variabele controleert LibreOffice Basic op overloop of onderloop. U hoeft er niet op te letten of Teller precies de waarde voor Einde heeft. De lus eindigt als Teller groter is dan Einde (positieve Stap-waarde) of kleiner dan Einde wordt (negatieve Stap-waarde).

Met behulp van de Exit For-instructie kan de lus onvoorwaardelijk worden beëindigd. Deze instructie moet zich binnen een For...Next lus bevinden. Gebruik de If...Then-instructie om de beëindigen-voorwaarde te testen op de volgende manier:

For...

instructies

If Voorwaarde = Waar Then Exit For

instructies

Next

Let op: In geneste For...Next-lussen wordt, als u een loop onvoorwaardelijk beëindigt met Exit For, alleen één lus beëindigd.

Voorbeeld

Het volgende voorbeeld gebruikt twee geneste loops om een tekenreeksarray met 10 elementen (sInvoer()), die eerst zijn gevuld met verschillende inhoud, te sorteren:

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sInvoer(0) = "Jerry"

    sInvoer(1) = "Patty"

    sInvoer(2) = "Kurt"

    sInvoer(3) = "Thomas"

    sInvoer(4) = "Michael"

    sInvoer(5) = "David"

    sInvoer(6) = "Cathy"

    sInvoer(7) = "Susie"

    sInvoer(8) = "Edward"

    sInvoer(9) = "Christine"

    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