For...Next-Anweisung (Visual Basic)

Aktualisiert: November 2007

Wiederholt eine Reihe von Anweisungen so oft wie angegeben.

For counter [ As datatype ] = start To end [ Step step ]
    [ statements ]
    [ Exit For ]
    [ statements ]
Next [ counter ]

Bestandteile

  • counter
    In der For-Anweisung erforderlich. Numerische Variable. Die Steuerelementvariable für die Schleife.

  • datatype
    Erforderlich, wenn counter noch nicht deklariert ist. Vom Datentyp counter.

  • start
    Erforderlich. Numerischer Ausdruck. Der Anfangswert von counter.

  • end
    Erforderlich. Numerischer Ausdruck. Der Endwert von counter.

  • step
    Optional. Numerischer Ausdruck. Der Wert, um den counter mit jeder durchlaufenen Schleife erhöht wird.

  • statements
    Optional. Eine oder mehrere Anweisungen zwischen For und Next, die mit der angegebenen Anzahl von Wiederholungen ausgeführt werden.

  • Exit For
    Optional. Überträgt die Steuerung aus der For-Schleife.

  • Next
    Erforderlich. Beendet die Definition der For-Schleife.

Hinweise

Verwenden Sie eine For...Next-Struktur, wenn ein Satz von Anweisungen mit einer festgelegten Anzahl von Wiederholungen ausgeführt werden soll.

Eine While...End While-Anweisung (Visual Basic) oder eine Do...Loop-Anweisung (Visual Basic) eignet sich gut, wenn Sie nicht im Voraus wissen, wie oft Sie die Anweisungen in der Schleife ausführen müssen. Wenn die Schleife jedoch eine festgelegte Anzahl von Wiederholungen durchlaufen soll, eignet sich eineFor...Next-Schleife besser. Sie bestimmen die Anzahl der Iterationen zu Beginn der Schleife.

Der Wert von step kann positiv oder negativ sein. Er bestimmt die Schleifenverarbeitung wie folgt:

step-Wert

Schleifenausführung, wenn

Positiv oder 0

counter <= end

Negativ

counter >= end

Falls kein Wert für step angegeben ist, wird standardmäßig 1 verwendet.

Regeln

  • Datentypen. Der Datentyp von counter ist normalerweise Integer, kann jedoch ein beliebiger Typ sein, der die Operatoren für größer oder gleich (>=), kleiner oder gleich <=), Addition (+) und Subtraktion (-) unterstützt. Es kann sogar ein benutzerdefinierter Typ sein, sofern er alle diese Operatoren unterstützt.

    Die Ausdrücke start, end und step ergeben i. d. R. den Typ Integer, können jedoch einen beliebigen Datentyp ergeben, der zum Typ von counter erweitert werden kann. Wenn Sie für counter einen benutzerdefinierten Typ verwenden, müssen Sie den CType-Konvertierungsoperator definieren, um die Typen von start, end oder step in den Typ von counter zu konvertieren.

  • Deklaration. Wenn counter nicht außerhalb dieser Schleife deklariert wurde, müssen Sie ihn in der For-Anweisung deklarieren. In diesem Fall ist der Gültigkeitsbereich von counter der Rumpf der Schleife. Sie können counter jedoch nicht sowohl außerhalb aus auch innerhalb der Schleife deklarieren.

  • Anzahl von Iterationen. Visual Basic wertet die Iterationswerte start, end und step nur einmal aus, und zwar vor Beginn der Schleife. Wenn der Anweisungsblock end oder step ändert, wirken sich diese Änderungen nicht auf die Iteration der Schleife aus.

  • Schachteln von Schleifen. Sie können For-Schleifen schachteln, indem Sie eine Schleife in eine andere einfügen. Jede Schleife erfordert jedoch eine eindeutige counter-Variable. Die folgende Konstruktion ist gültig.

    For i As Integer = 1 To 10
        For j As Integer = 1 To 10
            For k As Integer = 1 To 10
                ' Insert statements to operate with current values of i, j, and k.
            Next k
        Next j
    Next i
    

    Sie können auch unterschiedliche Arten von Steuerungsstrukturen in anderen Steuerungsstrukturen schachteln. Weitere Informationen finden Sie unter Geschachtelte Steuerungsstrukturen.

    Hinweis:

    Wenn eine Next-Anweisung einer äußeren Schachtelungsebene vor der Next-Anweisung einer inneren Ebene auftritt, signalisiert der Compiler einen Fehler. Der Compiler kann diesen Überlappungsfehler nur erkennen, wenn Sie in jeder Next-Anweisung counter angeben.

  • Bezeichnen der Steuerelementvariablen. Sie können counter in der Next-Anweisung optional angeben. Dies verbessert die Lesbarkeit des Programms, besonders, wenn Sie For-Schleifen geschachtelt haben. Sie müssen dieselbe Variable angeben, die in der entsprechenden For-Anweisung vorhanden ist.

  • Übertragen der Steuerung aus der Schleife. Die Exit-Anweisung (Visual Basic) überträgt die Steuerung direkt an die erste Anweisung nach der Next-Anweisung. Möglicherweise möchten Sie eine Schleife beenden, wenn Sie eine Bedingung feststellen, die das Fortsetzen des Durchlaufs unnötig oder unmöglich macht, z. B. ein fehlerhafter Wert oder eine Anforderung zum Beenden. Wenn Sie eine Ausnahme in einer Try...Catch...Finally-Anweisung abfangen, können Sie am Ende des Finally-Blocks Exit For verwenden.

    Sie können eine beliebige Anzahl von Exit For-Anweisungen an jeder Stelle der For-Schleife einfügen. Exit For wird häufig nach der Auswertung einer Bedingung verwendet, z. B. in einer If...Then...Else-Struktur.

  • Endlosschleifen. Mit Exit For kann eine Bedingung getestet werden, die eine Endlosschleife verursachen kann. Hierbei handelt es sich um eine Schleife, die mit einer extrem großen oder unendlichen Anzahl von Wiederholungen ausgeführt werden kann. Wenn Sie eine solche Bedingung feststellen, können Sie Exit For verwenden, um die Schleife zu verlassen. Weitere Informationen finden Sie unter Do...Loop-Anweisung (Visual Basic).

Verhalten

  • Einstieg in die Schleife. Visual Basic wertet start, end und step nur einmal aus, und zwar zu Beginn der Ausführung der For...Next-Schleife. Dann wird start zu counter zugeordnet. Bevor der Anweisungsblock ausgeführt wird, wird counter mit end verglichen. Wenn counter bereits den Endwert überschritten hat, wird die For-Schleife beendet und die Steuerung an die Anweisung nach der Next-Anweisung übergeben. Andernfalls wird der Anweisungsblock ausgeführt.

  • Iterationen der Schleife. Visual Basic erhöht bei jedem Auftreten der Next-Anweisung counter um step und kehrt zur For-Anweisung zurück. counter wird erneut mit end verglichen, und wieder wird je nach Ergebnis der Block ausgeführt oder die Schleife beendet. Dieser Vorgang wird fortgesetzt, bis end von counter übergeben wird oder eine Exit For-Anweisung auftritt.

  • Beenden der Schleife. Die Schleife wird erst beendet, wenn end von counter übergeben wurde. Wenn counter gleich end ist, wird die Schleife fortgesetzt. Der Vergleich, der bestimmt, ob der Block ausgeführt werden soll, lautet counter <= end, wenn step positiv ist, und counter >= end, wenn step negativ ist.

  • Ändern von Iterationswerten. Wenn Sie den Wert von counter während eines Schleifendurchlaufs ändern, wird unter Umständen das Lesen und Debuggen des Codes erschwert. Das Ändern des Werts von start, end oder step wirkt sich nicht auf die Iterationswerte aus, die zu Beginn der Schleife bestimmt wurden.

Beispiel

Im folgenden Beispiel werden geschachtelte For...Next-Strukturen mit unteschiedlichen Werten für step veranschaulicht.

Dim words, digit As Integer
Dim thisString As String = ""
For words = 10 To 1 Step -1
    For digit = 0 To 9
        thisString &= CStr(digit)
    Next digit
    thisString &= " "
Next words

Im vorherigen Beispiel wird eine Zeichenfolge erstellt, die 10 Instanzen der Zahlen 0 bis 9 enthält, wobei die Zeichenfolgen durch ein einzelnes Leerzeichen getrennt sind. Die äußere Schleife verringert eine Schleifenzählervariable bei jedem Schleifendurchlauf.

Siehe auch

Aufgaben

Gewusst wie: Verbessern der Leistung einer Schleife

Konzepte

Schleifenstruktur

Geschachtelte Steuerungsstrukturen

Referenz

While...End While-Anweisung (Visual Basic)

Do...Loop-Anweisung (Visual Basic)

Exit-Anweisung (Visual Basic)

For Each...Next-Anweisung (Visual Basic)