Cómo: Pasar a la siguiente iteración de un bucle

Actualización: noviembre 2007

Si ha finalizado el procesamiento para la iteración actual de un bucle Do, For o While, puede pasar inmediatamente a la siguiente iteración mediante Instrucción Continue (Visual Basic).

Pasar a la siguiente iteración

Para pasar a la siguiente iteración de un bucle For...Next

  1. Escriba el bucle For...Next de la manera normal.

  2. Utilice Continue For en cualquier lugar en el que desee finalizar la iteración actual y continúe inmediatamente con la iteración siguiente.

    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
    

Pasar desde dentro de un bucle anidado

Si tiene los bucles Do, For o While anidados uno dentro de otro, puede pasar inmediatamente a la siguiente iteración de cualquier nivel en el anidamiento. Sin embargo, esto sólo se puede hacer cuando los bucles son de tipos diferentes. Si tiene bucles anidados del mismo tipo, por ejemplo bucles While anidados, Continue While pasa a la siguiente iteración del bucle While más interno.

Para pasar a la siguiente iteración de un bucle Do desde dentro de un bucle For anidado

  1. Escriba los bucles anidados de la manera normal.

  2. Utilice Continue Do en cualquier lugar en el que desee finalizar la iteración actual del bucle For más interno y pase a la siguiente iteración del bucle Do más externo.

    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
    

Vea también

Tareas

Cómo: Transferir el control fuera de una estructura de control

Cómo: Ejecutar varias instrucciones de forma repetida

Cómo: Ejecutar varias instrucciones para todos los elementos de una colección o matriz

Cómo: Mejorar el rendimiento de un bucle

Conceptos

Estructuras de bucles

Estructuras de control anidadas

Referencia

Instrucción While...End While (Visual Basic)

Instrucción Do...Loop (Visual Basic)

Instrucción For...Next (Visual Basic)

Otros recursos

Flujo de control en Visual Basic