Gewusst wie: Springen zur nächsten Iteration einer Schleife
Aktualisiert: November 2007
Wenn Sie die Verarbeitung der aktuellen Iteration einer Do-Schleife, einer For-Schleife oder einer While-Schleife beendet haben, können Sie mittels der Continue-Anweisung (Visual Basic) gleich zur nächsten Iteration springen.
Springen zur nächsten Iteration
So springen Sie zur nächsten Iteration einer For...Next-Schleife
Schreiben Sie die For...Next-Schleife wie gewohnt.
Sie können Continue For jederzeit verwenden, wenn Sie die aktuelle Iteration beenden und gleich mit der nächsten Iteration fortfahren möchten.
Public Function findLargestRatio(ByVal high() As Double, _ ByVal low() As Double) As Double Dim ratio As Double Dim largestRatio As Double = Double.MinValue For counter As Integer = 0 To low.GetUpperBound(0) If Math.Abs(low(counter)) < System.Double.Epsilon _ Then Continue For ratio = high(counter) / low(counter) If Double.IsInfinity(ratio) OrElse Double.IsNaN(ratio) _ Then Continue For If ratio > largestRatio Then largestRatio = ratio Next counter Return largestRatio End Function
Springen innerhalb einer geschachtelten Schleife
Wenn ineinander geschachtelte Do-Schleifen, For-Schleifen oder While-Schleifen vorhanden sind, können Sie gleich zur nächsten Iteration einer beliebigen Ebene der Schachtelung springen. Dies trifft aber nur zu, wenn die Schleifen verschiedene Typen aufweisen. Wenn geschachtelte Schleifen des gleichen Typs (z. B. geschachtelte While-Schleifen) vorhanden sind, springt Continue While zur nächsten Iteration der innersten While-Schleife.
So springen Sie zur nächsten Iteration einer Do-Schleife innerhalb einer geschachtelten For-Schleife
Schreiben Sie die geschachtelten Schleifen wie gewohnt.
Verwenden Sie Continue Do überall dort, wo Sie die aktuelle Iteration der inneren For-Schleife beenden und zur nächsten Iteration der äußeren Do-Schleife springen möchten.
Public Sub divideElements(ByRef matrix(,) As Double) Dim i As Integer = -1 Do Until i > matrix.GetUpperBound(0) i += 1 For j As Integer = 0 To matrix.GetUpperBound(1) If matrix(j, j) = 0 Then Continue Do matrix(i, j) /= matrix(j, j) Next j Loop End Sub
Siehe auch
Aufgaben
Gewusst wie: Übertragen der Steuerung aus einer Kontrollstruktur
Gewusst wie: Mehrfaches Ausführen von mehreren Anweisungen
Gewusst wie: Verbessern der Leistung einer Schleife
Konzepte
Geschachtelte Steuerungsstrukturen
Referenz
While...End While-Anweisung (Visual Basic)
Do...Loop-Anweisung (Visual Basic)
For...Next-Anweisung (Visual Basic)