Module
Contents
Index 🔎︎

# 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