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