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