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