For...Next Statement

Toistetaan For...Next -lohkossa olevia lauseita tietty kertamäärä.

Syntaksi:

For Laskuri1=Alku1 To Loppu1 [Step Askel1]

lauselohko1

[Exit For]

lauselohko1

Next [Laskuri1]

Muuttujat:

Laskuri1: silmukkalaskuri, johon sijoitetaan aluksi yhtäsuuruusmerkin oikealla puolella oleva arvo (Alku1). Vain numeeriset muuttujat ovat kelvollisia. Silmukkalaskurin arvo kasvaa tai vähenee muuttujan Askel1 määräämin välein, kunnes Loppu1 ohitetaan.

Alku1: numeerinen muuttuja, joka määrää silmukkalaskurin arvon alussa.

Loppu1: numeerinen muuttuja, joka määrää silmukkalaskurin lopetusarvon.

Askel1: asettaa arvon, jolla silmukkalaskuria kasvatetaan tai vähennetään. Jos Askel1 ei ole määritetty, silmukkalaskuri kasvaa 1:n välein. Tässä tapauksessa, Loppu1 pitää olla suurempi kuin Alku1. Jos Laskuri1 halutaan olevan vähenevä, Loppu1 pitää olla pienempi kuin Alku1 ja Askel1:lle pitää sijoittaa negatiivinen arvo.

For...Next -silmukka toistaa kaikki silmukan lauseet niin monta kertaa kuin asetetut parametrit määräävät.

Kun laskurimuuttujan arvoa muutetaan, LibreOffice Basic tarkistaa, onko lopetusarvo saavutettu. Niin pian kuin laskuri ohittaa lopetusarvon, silmukka päättyy.

For...Next -lauseita voi asettaa sisäkkäin. Jos Next-lausetta seuraavaa muuttujaa ei ole määritetty, Next viittaa aina viimeisimpään For-lauseeseen.

Jos muutosaskel määritetään 0:ksi, välillä For ... Next olevia lauseita suoritetaan loputtomasti.

Kun silmukkalaskurin arvoa lasketaan, LibreOffice Basic tarkistaa ylityksen tai alituksen. Silmukka päättyy, kun Laskuri ylittää Loppu1:n (positiivinen Askel1-arvo) tai on alle Loppu1:n (negatiivinen Askel1-arvo).

Exit For -lausetta käytetään ehdottomaan silmukasta poistumiseen. Tämän lauseen pitää olla For...Next -silmukan sisällä. If...Then -lausetta voi käyttää poistumisehdon testaamiseen seuraavaan tapaan:

For...

lauseet

If ehto = True Then Exit For

lauseet

Next

Sisäkkäisissä For...Next -silmukoissa, jos silmukasta poistutaan ehdottomalla Exit For-lauseella, vain yhdestä silmukasta tullaan ulos.

Esimerkki

Seuraavassa esimerkissä käytetään kahta sisäkkäistä silmukkaa, 10-alkioisen merkkijonotaulukon ( sEntry() ) lajitteluun. Taulukko täytetään aluksi vaihtelevalla aineistolla:

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