Instrukcja For...Next
Powtarza instrukcje wewnątrz bloku For...Next określoną liczbę razy.
Składnia:
For Licznik = start To koniec [Step krok]
blok instrukcji
[Exit For]
blok instrukcji
Następne [counter]
Zmienne:
Licznik: Licznik pętli o początkowej wartości określonej po prawej stronie znaku równości (Start). Poprawne są tylko zmienne numeryczne. Licznik pętli zwiększa się lub zmniejsza o wartość krok, aż do osiągnięcia wartości koniec.
Start: Zmienna numeryczna definiująca początkową wartość licznika na początku pętli.
Koniec: Zmienna numeryczna definiująca końcową wartość licznika na końcu pętli.
Krok: Określa wartość, o którą jest zwiększany lub zmniejszany licznik pętli. Jeśli wartość kroku nie zostanie określona, licznik pętli jest zwiększany o 1. W takim przypadku wartość końca musi być większa niż wartość startu. Aby zmniejszać licznik, wartość końca musi być mniejsza niż wartość startu, a wartości licznik należy przypisać liczbę ujemną.
Pętla For...Next powtarza wszystkie zawarte wewnątrz instrukcje tyle razy, ile jest to określone przez parametry instrukcji.
Wraz ze zmniejszaniem wartości zmiennej licznikowej LibreOffice Basic sprawdza, czy została osiągnięta wartość końcowa. Jeśli licznik przekracza wartość końcową, pętla jest automatycznie zakańczana.
Instrukcje For...Next można zagnieżdżać. Jeśli po instrukcji Next nie zostanie podana nazwa zmiennej, Next przyjmuje zmienną określoną przy ostatniej instrukcji For.
W przypadku określenia zerowej wartości kroku instrukcje pomiędzy For i Next są powtarzane nieprzerwanie.
Podczas obliczania zmiennej licznikowej LibreOffice Basic sprawdza, czy nie nastąpiło przepełnienie lub niedopełnienie. Pętla kończy się, kiedy licznik przekracza wartość końca (przy dodatniej wartości kroku) lub będzie mniejszy niż koniec (przy ujemnej wartości kroku).
Do bezwarunkowego zakończenia pętli można użyć instrukcji Exit For. Instrukcja ta musi znajdować się wewnątrz pętli For...Next. W celu sprawdzenia warunku wyjścia z pętli można użyć instrukcji If...Then, jak przedstawiono w poniższym przykładzie:
For...
instrukcje
If warunek = True Then Exit For
instrukcje
Next
Uwaga: W przypadku zagnieżdżenia pętli For...Next bezwarunkowe wyjście za pomocą instrukcji Exit For dotyczy tylko jednej pętli.
Przykład
W poniższym przykładzie użyto dwóch zagnieżdżonych pętli w celu posortowania tablicy zawierającej 10 elementów ( sEntry() ) w pierwszej kolejności wypełnionej różnymi wartościami:
Sub ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
sEntry(0) = "Jerzy"
sEntry(1) = "Patrycja"
sEntry(2) = "Kamil"
sEntry(3) = "Tomek"
sEntry(4) = "Michał"
sEntry(5) = "Dawid"
sEntry(6) = "Kasia"
sEntry(7) = "Sylwia"
sEntry(8) = "Edward"
sEntry(9) = "Krystyna"
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