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

Confira também