For...Next Statement

Kordab määratud arv kordi ploki For...Next vahel olevaid lauseid.

SĂĽntaks:


For counter=start To end [Step step]
lause sisu
[Exit For]
lause sisu
Next [counter]

Muutujad:

Counter: tsüklite arvu algselt määratud väärtus võrdusmärgist paremal (algus). Tsüklite arv väheneb vastavalt muutujale Samm, kuni jõutakse lõppu.

Start: arvuline muutuja, mis määratleb algse väärtuse tsükli alguses.

End: arvuline muutuja, mis määratleb lõpliku väärtuse tsükli lõpus.

Step: seab väärtuse, mille võrra tsüklite arvu suurendada või vähendada. Kui sammu pole määratud, siis suurendatakse tsüklite arvu 1 võrra. Sel juhul peab väärtus Lõpp olema suurem kui väärtus Algus. Kui soovite arvu vähendada, siis peab väärtus Lõpp olema väiksem kui väärtus Algus ja sammu väärtus peab olema negatiivne.

Tsükkel For...Next kordab kõiki tsüklis olevaid lauseid parameetritega määratud arv kordi.

Arvu muutuja vähenemisel kontrollib rakendus LibreOffice BASIC, kas lõppväärtus on käes. Niipea, kui arv on jõudnud lõppväärtuseni, lõpetatakse tsükkel automaatselt.

Tsükli For...Next lauseid saab pesastada. Kui lausele Next järgnevat muutujat pole määratud, viitab Next automaatselt viimatisele For-lausele.

Kui määrad juurdekasvuks 0, siis korratakse lausete For ja Next vahelisi lauseid pidevalt.

Arvu muutuja väärtuse vähendamisel kontrollib LibreOffice BASIC üle- ja alatäitumist. Tsükkel lõpeb, kui arv jõuab lõppväärtuseni (sammu positiivne väärtus) või on väiksem kui lõppväärtus (sammu negatiivne väärtus).

Tsüklist tingimusteta väljumiseks kasuta lauset Välju lausest For. See lause peab olema tsüklis For...Next. Väljumistingimuse testimiseks kasuta lauset If...Then järgmiselt:

For...

laused

If condition = True Then Exit For

laused

Next

Märkus. Pesastatud tsüklitest For...Next tingimusteta väljumisel lause Välju lausest For abil, väljutakse ainult ühest tsüklist.

Näide

Järgmises näites kasutatakse 10 elemendiga stringimassiivi sortimiseks kahte pesastatud tsüklit (sEntry() ), kuhu on algselt sisestatud erinev sisu:


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