Modul
Indhald
Innhaldsliste 🔎︎

# For...Next-uttrykket

Gjentar uttrykket mellom FOR … NEXT-blokka eit bestemt tal gongar.

## Syntaks:

    FOR teljar=start TO slutt [Steg steg]
    uttrykksblokk
    [Exit For]
    uttrykksblokk
    Next [teljar]

## Variablar

Teljar: Løkketeljar som i starten får verdien til høgre for likskapsteiknet (start). Berre talvariablar kan brukast her. Løkketeljaren tel oppover eller nedover avhengig av variabelen «steg» til «slutt» er nådd.

Start: Talvariabel som bestemmer startverdien for løkka.

Slutt: Talvariabel som bestemmer sluttverdien for løkka.

Steg: Bestemmer kor mykje løkketeljaren skal auka eller minka for kvar gjennomgang. Viss denne ikkje er sett, vert teljaren auka med 1. Slutt må i tilfelle vera større enn start. Ønskjer du å telja nedover, må slutt vera mindre enn start og steg må ha ein negativ verdi.

FOR … NEXT-løkka gjentar uttrykka inne i sløyfa så mange gongar som er bestemt av parametra.

Når teljaren aukar, vil LibreOffice Basic kontrollera om sluttverdien er nådd og avslutta løkka når teljare går forbi sluttverdien.

Det er mogleg å nøsta FOR … NEXT-uttrykk. Viss du ikkje set inn ein variabel etter NEXT, vil NEXT bruka det næraste FOR-uttrykket.

Viss du set auken til 0, vert uttrykket mellom FOR og NEXT gjentatt kontinuerleg.

Når teljaren tel nedover, vil LibreOffice Basic kontrollera for over- eller underflyt. Sløyfa vert avslutta når teljaren overskrid slutt (positiv stegverdi) eller er mindre enn slutt (negativ stegverdi).

Bruk uttrykket EXIT FOR for å avslutta sløyfa utan at viklåret er nådd. Dette uttrykket må vera inne i FOR … NEXT-sløyfa. Bruk uttrykket IF … THEN for å kontrollera utgangsvilkåra slik:

FOR …

uttrykk

IF vilkår = SANN THEN EXIT FOR

uttrykk

Next

Merk: Viss du går ut av nøsta FOR … NEXT-sløyfer med EXIT FOR før vilkåret er oppfylt, vert berre ei sløyfe utført.

## Eksempel

Dette eksemplet brukar to nøsta løkker for å sortera ein strengtabell med 10 element ( sEntry() ) som først vert fylt med innhald:

    Sub ExampleSort
    Dim sEntry(9) As String
    Dim iCount As Integer
    Dim iCount2 As Integer
    Dim sTemp As String
        sEntry(0) = "Jerry"
        sEntry(1) = "Patty"
        sEntry(2) = "Kurt"
        sEntry(3) = "Thomas"
        sEntry(4) = "Michael"
        sEntry(5) = "David"
        sEntry(6) = "Cathy"
        sEntry(7) = "Susie"
        sEntry(8) = "Edward"
        sEntry(9) = "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