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 LibreOfficeDev 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 LibreOfficeDev 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