For...Next utasítás

Meghatározott számú alkalommal megismétli a For...Next blokkban levő utasításokat.

Szintaxis:


For számláló=kezdés To befejezés [Step lépés]
utasításblokk
[Exit For]
utasításblokk
Next [számláló]

Változók:

Számláló: A ciklusszámlálóhoz kezdetben az egyenlőségjel jobb oldalán érték van hozzárendelve (kezdés). Csak numerikus változók használhatók. A ciklusszámláló értéke növekszik vagy csökken a Lépés változónak megfelelően a Befejezés elérésig.

Kezdés: Numerikus változó, amely meghatározza a kezdőértéket a ciklus elején.

Befejezés: Numerikus változó, amely meghatározza a befejező a ciklus végén.

Lépés: Beállítja az értéket, amellyel a ciklusszámlálót növelni vagy csökkenteni kell. Ha a Lépés nincs megadva, akkor a ciklusszámlálót 1-gyel növeli a program. Ebben az esetben a Befejezés értékének nagyobbnak kell lennie a Kezdés értékénél. Ha csökkenteni kívánja a számlálót, akkor a Befejezés értékének kevesebbnek kell lennie a Kezdés értékénél, és a Lépéshez egy negatív értéket kell rendelni.

A For...Next ciklus a ciklus összes utasítását a paraméterek által meghatározott számszor ismétli.

A számláló értékének csökkentésekor a LibreOffice Basic ellenőrzi, hogy az elérte-e a végső értékét. Ha a számláló meghaladja a végső értékét, akkor a ciklus automatikusan befejeződik.

A For...Next utasítások beágyazhatók. Ha nem ad meg változót a Next utasítás után, akkor a Next automatikusan a legutoljára végrehajtott For utasításra hivatkozik.

Ha 0 növelést ad meg, akkor a For és Next közötti utasítások folyamatosan ismétlődnek.

Ha a számláló lefelé számlál, akkor a LibreOffice Basic ellenőrzi a túlcsordulást és az alulcsordulást. A ciklusnak akkor van vége, ha a Számláló nagyobb (pozitív Lépés esetén), vagy kisebb (negatív Lépés esetén) lesz, mint a Befejezés értéke.

Az Exit For utasítás segítségével feltétel nélkül kiléphet a ciklusból. Ennek az utasításnak a For...Next cikluson belül kell lennie. Az If...Then utasítás segítségével tesztelheti a kilépési feltételt az alábbiak szerint:

For...

utasítások

If feltétel = True Then Exit For

utasítások

Next

Megjegyzés: ha beágyazott For...Next ciklusokban az Exit For utasítással feltétel nélkül kilép a ciklusból, akkor csak egy ciklusból lép ki.

Példa

A következő példa két egymásba ágyazott ciklust használ egy 10 olyan elemet (sEntry()) tartalmazó karakterlánc-tömb rendezésére, amely elemeknek először értéket ad:


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