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