Instrukcja For...Next

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

Składnia:

Diagram instrukcji For


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

Diagram instrukcji For Each


  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
note

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

Prosimy o wsparcie!