Export (0) Print
Expand All

How to: Skip to the Next Iteration of a Loop

If you have completed your processing for the current iteration of a Do, For, or While loop, you can skip immediately to the next iteration by using a Continue Statement (Visual Basic).

To skip to the next iteration of a For...Next loop

  1. Write the For...Next loop in the normal way.

  2. Use Continue For at any place you want to terminate the current iteration and proceed immediately to the next iteration.

    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
    

If you have Do, For, or While loops nested one within another, you can skip immediately to the next iteration of any level in the nesting. This is only true, however, when the loops are of different types. If you have nested loops of the same type, for example nested While loops, Continue While skips to the next iteration of the innermost While loop.

To skip to the next iteration of a Do loop from within a nested For loop

  1. Write the nested loops in the normal way.

  2. Use Continue Do at any place that you want to terminate the current iteration of the inner For loop and skip to the next iteration of the outer Do loop.

    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
    

Community Additions

ADD
Show:
© 2014 Microsoft