Tartalom
Index 🔎︎

# 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