For...Next Statement
Upprepar satserna i For...Next-blocket ett angivet antal gÄnger.
Syntax:
For counter=start To end [Step step]
statementblock
[Exit For]
statementblock
Next [counter]
Variabler:
Counter: LooprÀknaren som frÄn början tilldelades vÀrdet till höger om likhetstecknet (start). Endast numeriska vÀrden Àr giltiga. LooprÀknaren ökar eller minskar beroende pÄ nÀr variabeln Step until End överförs.
Start: Numerisk variabel som definierar det initiala vÀrdet i början av loopen.
Slut: Numerisk variabel som definierar slutvÀrdet i slutet av loopen.
Step: BestÀmmer det vÀrde med vilket looprÀknaren ska öka eller minska. Om Step inte anges anvÀnder looprÀknaren steget 1. I sÄ fall mÄste End vara större Àn Start. Om du vill minska Counter mÄste End vara mindre Àn Start, och Step mÄste tilldelas ett negativt vÀrde.
For...Next-loopen upprepar alla satser i loopen det antal gÄnger som anges av parametrarna.
NÀr rÀknarvariabeln minskar kontrollerar LibreOffice Basic om slutvÀrdet har nÄtts. SÄ snart rÀknaren passerar slutvÀrdet avslutas loopen automatiskt.
Det gÄr att sammanflÀta For...Next-satser. Om du inte anger en variabel efter Next-satsen sÄ refererar Next automatiskt till den senaste For-satsen.
Om du anger steget 0 upprepas satserna mellan For och Next kontinuerligt.
Vid nedrÀkning av rÀknarvariabeln letar LibreOffice Basic efter spill eller underskott. Loopen slutar nÀr Counter överstiger End (positivt Step-vÀrde), eller Àr mindre Àn End (negativt Step-vÀrde).
AnvÀnd Exit For-satsen för att avsluta loopen ovillkorligt. Den hÀr satsen mÄste finnas i en For...Next-loop. AnvÀnd If...Then-satsen och testa avslutningsvillkoret enligt följande:
For...
satser
If condition = True Then Exit For
satser
NĂ€sta
Obs! Om du avslutar en loop ovillkorligt med Exit For i sammanflÀtade For...Next-loopar, sÄ avslutas bara en loop.
Exempel
I följande exempel anvÀnds tvÄ sammanflÀtade loopar för att sortera en strÀngmatris med 10 element ( sEntry() ) som först fylls med olika innehÄll:
Sub ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
sEntry(0) = "Erik"
sEntry(1) = "Patricia"
sEntry(2) = "Kurt"
sEntry(3) = "Tomas"
sEntry(4) = "Mikael"
sEntry(5) = "David"
sEntry(6) = "Katarina"
sEntry(7) = "Susanne"
sEntry(8) = "Edvard"
sEntry(9) = "Christina"
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