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