Compartir a través de


Cómo: Pasar a la siguiente iteración de un bucle (Visual Basic)

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 Continue (Instrucción, 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 (Visual Basic)

Cómo: Ejecutar varias instrucciones de forma repetida (Visual Basic)

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

Cómo: Mejorar el rendimiento de un bucle (Visual Basic)

Referencia

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

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

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

Conceptos

Estructuras de bucles (Visual Basic)

Estructuras de control anidadas (Visual Basic)

Otros recursos

Flujo de control en Visual Basic