Instrução Continue (Visual Basic)
Transfere o controle imediatamente para a próxima iteração do loop.
Sintaxe
Continue { Do | For | While }
Comentários
Você pode transferir de dentro de um loop Do
, For
ou While
para a próxima iteração desse loop. O controle passa imediatamente para o teste de condição de loop, que é equivalente à transferência para a instrução For
ou While
, ou para a instrução Do
ou Loop
que contém a cláusula Until
ou While
.
Você pode usar Continue
em qualquer local no loop que permita transferências. As regras que permitem a transferência de controle são iguais às da Instrução GoTo.
Por exemplo, se um loop estiver totalmente contido em um bloco Try
, Catch
ou Finally
, você pode usar Continue
para fazer a transferência para fora do loop. Se, por outro lado, a estrutura Try
...End Try
estiver contida no loop, você não poderá usar Continue
para transferir o controle para fora do bloco Finally
e poderá usá-lo para transferir para fora um bloco Try
ou Catch
somente se você transferir completamente para fora da estrutura Try
...End Try
.
Se você tiver loops aninhados do mesmo tipo, por exemplo, um loop Do
dentro de Do
, uma instrução Continue Do
pulará para a próxima iteração do loop Do
mais interno que o contém. Você não pode usar Continue
para pular para a próxima iteração de um loop contendo do mesmo tipo.
Se você tiver loops aninhados de tipos diferentes, por exemplo, um loop Do
dentro de For
, poderá pular para a próxima iteração de qualquer loop usando Continue Do
ou Continue For
.
Exemplo
O exemplo de código a seguir usa a instrução Continue While
para pular para a próxima coluna de uma matriz se um divisor for zero. O Continue While
está dentro de um loop For
. Ele é transferido para a instrução While col < lastcol
, que é a próxima iteração do loop While
mais interno que contém 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