Compartilhar via


Declaração Do...Loop (Visual Basic)

Repete um bloco de declarações enquanto uma condição Boolean for True ou até a condição tornar-se True.

Do { While | Until } condition
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop
-or-
Do
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop { While | Until } condition

Partes

  • While
    Exigido a não ser que Until seja usado.Repita o loop até que condition seja False.

  • Until
    Exigido a não ser que While seja usado.Repita o loop até que condition seja True.

  • condition
    Opcional.Boolean expressão. Se condition é Nothing, Visual Basic trata isso como False.

  • statements
    Opcional.Uma ou mais declarações que são repetidas enquanto, ou até que, condition for True.

  • Exit Do
    Opcional.Transfere controle fora do loop Do.

  • Loop
    Obrigatório.Termina a definição do loop Do.

Comentários

Use uma estrutura Do...Loop quando você desejar repetir um conjunto de declarações por um número indefinido de vezes, ae que uma condição esteja satisfeita.Se você desejar repetir as declarações um conjunto de números de vezes, a Declaração For...Next é normalmente uma opção melhor.

A estrutura Do...Loop dá a você mais flexibilidade que o While... participante While demonstrativo (Visual Basic) porque ela permite que você escolha terminar o loop quando condition deixa de ser True ou quando se torna True pela primeira vez.Isto também permite que você teste condition tanto no início quanto no final do loop.

Regras

  • Natureza da Condição. A condição normalmente resulta de uma comparação de dois valores, mas pode ser qualquer expressão que avalia para um valor Tipo de dados booleanos (Visual Basic) (True ou False).Isso inclui valores de outros tipos de dados, como tipos numéricos, que foram convertidos em Boolean.

  • Testando a Condição. Você pode testar condition apenas uma vez, tanto no início quanto no final do loop.Você pode usar ou While ou Until para especificar condition, mas não ambos.

  • Número de Iterações. Se você testar condition no início do loop (na declaração Do), o loop pode nunca ser executado ao menos uma vez.Se você testar no final do loop (na declaração Loop), o loop sempre é executado pelo menos uma vez.

  • Loops Aninhados. Você pode aninhar loops Do colocando um loop dentro de outro.Você também pode aninhar diferentes tipos de estruturas de controle uma dentro da outra.Para obter mais informações, consulte Estruturas de controle aninhadas.

  • Transferindo Fora do Loop O Declaração Saída (Visual Basic) transfere controle imediatamente para a declaração que segue a declaração Loop.Você pode querer sair de um loop se você detectar uma condição que se faz desnecessária ou impossível de se continuar iterando, como um valor errôneo ou uma exigência de finalização.Você pode colocar qualquer número de Exit Do instruções em qualquer lugar na Do loop. Exit Do geralmente é usado depois de avaliar algumas condições, por exemplo em um If...Then...Else estrutura.

Loops Intermináveis

Um uso do Exit Do é testar uma condição que possa causar um loop interminável, que é um loop que é executado num número extremamente grande ou mesmo infinito de vezes.Se você detectar tal condição, você pode usar Exit Do para escapar do loop.Caso contrário, o loop continua sendo executado.

No exemplo a seguir, é designado um valor a number que pode fazer com que o loop seja executado mais de 2 ^ 31 vezes.A declaração If procura por esta condição e sai se ela existir, impedindo voltas intermináveis.

Sub exitDoExample()
    Dim counter As Integer = 0
    Dim number As Integer = 8
    Do Until number = 10
        If number <= 0 Then Exit Do
        number -= 1
        counter += 1
    Loop
    MsgBox("The loop ran " & counter & " times.")
End Sub
Observação:

Para parar um loop interminável, pressione ESC ou CTRL+BREAK.

Exemplo

O exemplo a seguir ilustra estruturas Do...Loop aninhadas, assim como o uso de While e Until, e teste no início (declaração Do) e fim (declaração Loop) do loop.

Sub DoExample()
    Dim check As Boolean = True
    Dim counter As Integer = 0
    Do
        Do While counter < 20
            counter += 1
            If counter = 10 Then
                check = False
                Exit Do
            End If
        Loop
    Loop Until check = False
End Sub

No exemplo anterior, a estrutura Do...Loop interna é iterada 10 vezes, determina o valor da bandeira para False e sai prematuramente usando a declaração Exit Do.O loop mais externo sai imediatamente após checar o valor da bandeira.

Consulte também

Tarefas

Como: Melhore o desempenho de um loop

Conceitos

Estruturas de loop

Estruturas de controle aninhadas

Referência

For... Next demonstrativo (Visual Basic)

Tipo de dados booleanos (Visual Basic)

Declaração Saída (Visual Basic)

While... participante While demonstrativo (Visual Basic)