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