For...Next Statement

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