Spis treści

# Instrukcja For...Next

Powtarza instrukcje między blokiem For...Next określoną liczbę razy.

## Składnia:

    For counter=start To end [Step step]
        blok instrukcji
        [Exit For]
        blok instrukcji
    Next [counter]

      For Each item In list
          blok instrukcji
      [Exit For]
          blok instrukcji
      Next [item]

## Zmienne:

counter: Licznik pętli counter początkowo przypisuje wartość po prawej stronie znaku równości (start). Poprawne są tylko zmienne numeryczne. Licznik pętli zwiększa się lub zmniejsza zgodnie ze zmienną step aż do przejścia end.

start: Zmienna liczbowa określająca wartość początkową na początku pętli.

end: Zmienna numeryczna, która definiuje końcową wartość na końcu pętli.

step: Ustawia wartość, o którą ma być zwiększany lub zmniejszany licznik pętli. Jeśli step nie jest podany, licznik pętli jest zwiększany o 1. W tym przypadku end musi być większa niż start. Jeśli chcesz zmniejszyć counter, end musi być mniejsza niż start, a step musi mieć przypisaną wartość ujemną.

Pętla For...Next powtarza wszystkie zawarte wewnątrz instrukcje tyle razy, ile jest to określone przez parametry instrukcji.

Gdy zmienna counter jest zmniejszana, LibreOffice Basic sprawdza, czy została osiągnięta wartość end. Gdy tylko counter przekroczy wartość end, pętla automatycznie się kończy.

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 odliczania zmiennej licznika LibreOffice Basic sprawdza, czy nie występuje przepełnienie lub niedopełnienie. Pętla kończy się, gdy wartość count przekroczy end (dodatnia wartość Step) lub będzie mniejsza niż end (ujemna wartość Step).

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...
          blok instrukcji
          If condition = True Then Exit For
          blok instrukcji
      Next

W zagnieżdżonych pętlach For...Next, jeśli opuścisz pętlę bezwarunkowo za pomocą Exit For, zostanie zakończona tylko jedna pętla.

## Przykłady

Poniższy przykład wykorzystuje dwie zagnieżdżone pętle do sortowania tablicy ciągów zawierającej 10 elementów ( sEntry() ), która jest wypełniona różnymi treściami:

    Sub ExampleSort
    Dim sEntry(9) As String
    Dim iCount As Integer, iCount2 As Integer
    Dim sTemp As String
        sEntry = Array("Jerry","Patty","Kurt","Thomas","Michael",_
                     "David","Cathy","Susie","Edward","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

Spowoduje to zbadanie zawartości tablicy w celu wyświetlenia każdego zawartego w niej elementu.

      Sub list_iteration
          sztućce = Array("widelec", "nóż", "łyżka")
          For Each element w sztućce
              Print element
          Next ' element
      End Sub