Module
Contents
Index 🔎︎

# 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