Instructie For...Next

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

Syntaxis:

Diagram van de instructie For


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

Diagram voor instructie For Each


  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
note

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 stringarray 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 array 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!