Continue (Instrucción, Visual Basic)

Transfiere el control inmediatamente a la siguiente iteración de un bucle.

Sintaxis

Continue { Do | For | While }  

Comentarios

Puede transferir desde dentro de un bucle Do, For o While a la siguiente iteración de ese bucle. El control pasa inmediatamente a la prueba de condición de bucle, que equivale a transferir a la instrucción For o While, o a la instrucción Do o Loop que contiene la cláusula Until o While.

Puede usar Continue en cualquier ubicación del bucle que permita las transferencias. Las reglas que permiten la transferencia de control son las mismas que con la instrucción GoTo.

Por ejemplo, si un bucle está totalmente contenido dentro de un bloque Try, un bloque Catch o un bloque Finally, puede usar Continue para transferir fuera del bucle. Si, por otro lado, la estructura Try...End Try se encuentra dentro del bucle, no puede usar Continue para transferir el control fuera del bloque Finally, y puede usarlo para transferir fuera de un bloque Try o Catch solo si transfiere completamente fuera de la estructura Try...End Try.

Si tiene bucles anidados del mismo tipo, por ejemplo, un bucle Do dentro de otro bucle Do, una instrucción Continue Do omite la siguiente iteración del bucle Do más interno que lo contiene. No se puede usar Continue para ir a la siguiente iteración de un bucle contenedor del mismo tipo.

Si tiene bucles anidados de diferentes tipos, por ejemplo, un bucle Do dentro de un bucle For, puede ir directamente a la siguiente iteración de cualquiera de los bucles mediante Continue Do o Continue For.

Ejemplo

En el ejemplo de código siguiente se usa la instrucción Continue While para ir a la siguiente columna de una matriz si un divisor es cero. Continue While está dentro de un bucle For. Transfiere a la instrucción While col < lastcol, que es la siguiente iteración del bucle While más interno que contiene el bucle For.

Dim row, col As Integer
Dim lastrow As Integer = 6
Dim lastcol As Integer = 10
Dim a(,) As Double = New Double(lastrow, lastcol) {}
Dim b(7) As Double
row = -1
While row < lastrow
    row += 1
    col = -1
    While col < lastcol
        col += 1
        a(row, col) = 0
        For i As Integer = 0 To b.GetUpperBound(0)
            If b(i) = col Then
                Continue While
            Else
                a(row, col) += (row + b(i)) / (col - b(i))
            End If
        Next i
    End While
End While

Consulte también