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 controle aninhadas
Referência
For... Next demonstrativo (Visual Basic)
Tipo de dados booleanos (Visual Basic)