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