Inhalte

# Anweisung For…Next

Wiederholt die Anweisungen zwischen dem Block For … Next eine bestimmte Anzahl von Malen.

## Syntax:

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

      For Each item In list
          Befehlsblock
      [Exit For]
          Befehlsblock
      Next [item]

## Variablen:

counter: Der Schleife counter wird anfänglich den Wert rechts vom Gleichheitszeichen (start) zugewiesen. Nur numerische Variablen sind gültig. Der Schleifenzähler vergrößert oder verkleiner sich entsprechend der Variablen step, bis end passiert ist.

start: Numerische Variable, die den Startwert am Anfang der Schleife definiert.

end: Numerische Variable, die den Endwert am Ende der Schleife definiert.

step: Legt den Wert fest, um den der Schleifenzähler vergrößert oder verkleinert wird. Wird step nicht angegeben, wird der Schleifenzähler um 1 vergrößert. In diesem Fall muss end größer als start sein. Wenn Sie counter verkleinern möchten, muss end kleiner als start sein und step muss ein negativer Wert zugewiesen werden.

Die Schleife For…Next wiederholt alle Anweisungen innerhalb der Schleife so oft, wie es in den Parametern angegeben ist.

Wenn die Variable counter verkleinert wird, prüft LibreOffice Basic, ob der Wert end erreicht wurde. Sobald der counter den Wert end passiert, wird die Schleife automatisch beendet.

Sie können Anweisungen For…Next verschachteln. Wenn Sie nach der Anweisung Next keine Variable festlegen, bezieht sich Next automatisch auf die letzte vorhergehende Anweisung For.

Legen Sie eine Schrittweite von 0 fest, dann werden die Anweisungen zwischen For und Next endlos ausgeführt.

Beim Herunterzählen der Zählervariablen prüft LibreOffice Basic auf Überlauf oder Unterlauf. Die Schleife endet, wenn counter den Wert für end überschreitet (positiver Wert für step) oder kleiner als end ist (negativer Wert für step).

Um die Schleife bedingungslos zu verlassen, verwenden Sie die Anweisung Exit For. Diese Anweisung muss in einer Schleife For…Next stehen. Verwenden Sie wie folgt die Anweisung If…Then, um die Ausstiegsbedingung zu prüfen:

      For...
          Befehlsblock
          If condition = True Then Exit For
          Befehlsblock
      Next

Wenn Sie in verschachtelten Schleifen For … Next eine Schleife bedingungslos mit Exit For beenden, wird nur eine Schleife verlassen.

## Beispiele

Das folgende Beispiel verwendet zwei verschachtelte Schleifen, um ein String-Array mit 10 Elementen ( sEntry() ) zu sortieren, das mit verschiedenen Inhalten gefüllt ist:

    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

Dadurch wird der Inhalt eines Arrays untersucht, um jedes darin enthaltene Element anzuzeigen.

      Sub list_iteration
          cutlery = Array("Gabel", "Messer", "Löffel")
          For Each item in cutlery
              Print item
          Next ' item
      End Sub