Inhoud

# Instructie For...Next

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

## Syntaxis:

    For counter=start To end [Step step]
        instructieblok
        [Exit For]
        instructieblok
    Next [counter]

      For Each item In list
          instructieblok
      [Exit For]
          instructieblok
      Next [item]

## Variabelen:

counter: Loop counter kende aanvankelijk de waarde rechts van het isgelijkteken toe (start). Alleen numerieke variabelen zijn geldig. De lussenteller neemt toe of af volgens de variabele step totdat end is gepasseerd.

start: Numerieke variabele die de beginwaarde aan het begin van de lus definieert.

end: Numerieke variabele die de uiteindelijke waarde aan het einde van de lus definieert.

stap: Stelt de waarde in waarmee de lussenteller moet worden verhoogd of verlaagd. Als stap niet is opgegeven, wordt de lussenteller verhoogd met 1. In dit geval moet end groter zijn dan start. Als u teller wilt verkleinen, moet einde kleiner zijn dan start, en moet aan stap een negatieve waarde worden toegewezen.

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 counter variabele wordt verlaagd, controleert LibreOffice Basic of de end waarde is bereikt. Zodra de teller de end waarde passeert, wordt de lus beëindigd.

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.

Bij het aftellen van de tellervariabele controleert LibreOffice Basic op over- of onderstroom. De lus eindigt wanneer counter groter is dan end (positieve Step-waarde) of kleiner is dan end (negatieve Step-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...
          instructieblok
          If condition = True Then Exit For
          instructieblok
      Next

Als u in geneste For...Next lussen een lus onvoorwaardelijk verlaat met Exit For, wordt slechts één lus verlaten.

## Voorbeelden

In het volgende voorbeeld worden twee geneste lussen gebruikt om een tekenreeksmatrix met 10 elementen (sEntry ()) te sorteren, die is gevuld met verschillende inhoud:

    Sub ExampleSort
    Dim sEntry(9) As String
    Dim iCount As Integer, iCount2 As Integer
    Dim sTemp As String
        sEntry = Array("Jerry","Patty","Kurt","Thomas","Michael",_
                     "David","Cathy","Susie","Edward","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

Dit onderzoekt de inhoud van een matrix om elk item dat het bevat weer te geven.

      Sub lijst_iteratie
          bestek = Array("vork", "mes", "lepel")
          For Each item in bestek
              Item afdrukken
          Volgend ' item
      End Sub

Help ons, alstublieft!