Declaração Do...Loop (Visual Basic)
Repeats a block of statements while a Boolean condition is True or until the condition becomes True.
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
Parts
Term |
Definition |
Do |
Required. Inicia a definição de Dodeloop. |
While |
Required unless Until is used. Repeat the loop until condition is False. |
Until |
Required unless While is used. Repeat the loop until condition is True. |
condition |
Optional. Booleanexpressão. If condition is Nothing, Visual Basic treats it as False. |
statements |
Optional. One or more statements that are repeated while, or until, condition is True. |
Exit Do |
Optional. Transfers control out of the Do loop. |
Loop |
Required. Terminates the definition of the Do loop. |
Comentários
Use a Do...Loop structure when you want to repeat a set of statements an indefinite number of times, until a condition is satisfied. If you want to repeat the statements a set number of times, the For...Next Statement is usually a better choice.
You can use either While or Until to specify condition, but not both.
Você pode teste condition somente uma vez, no início ou no final do loop. Se você teste condition no início do loop (na Do demonstrativo), o loop pode não ser executado até mesmo uma vez. Se o teste no final do loop (na Loop demonstrativo), o loop é executado sempre pelo menos uma vez.
The condition usually results from a comparison of two values, but it can be any expression that evaluates to a Tipo de dados booleanos (Visual Basic) value (True or False). This includes values of other data types, such as numeric types, that have been converted to Boolean.
Você pode aninhar Do loops colocando um loop dentro de outro. Você também pode aninhar diferentes tipos de estruturas de controle em si. For more information, see Estruturas de controle aninhado (Visual Basic).
Observação |
---|
O Do...Loop estrutura lhe dá mais flexibilidade do que o Instrução While...End While (Visual Basic) porque ele permite que você decida se deseja encerrar o loop quando condition deixa de ser True ou quando ela for primeiro True. Ele também permite teste condition no início ou no final do loop. |
Sair
O Exit Do demonstrativo pode fornecer uma maneira alternativa para sair de um Do…Loop. Exit Dotransfere o controle imediatamente para a demonstrativo que segue a Loop demonstrativo.
Exit Doé freqüentemente usado após alguma condição é avaliada, por exemplo, em um If...Then...Else estrutura. You might want to exit a loop if you detect a condition that makes it unnecessary or impossible to continue iterating, such as an erroneous value or a termination request. Um uso Exit Do é para teste uma condição que poderia causar um interminável loop, que é um loop que poderia executar um número grande ou até mesmo infinito de vezes. Você pode usar Exit Do para sair do loop.
Você pode incluir qualquer número de Exit Do instruções em qualquer lugar em um Do…Loop.
Quando usado aninhados dentro Do loops, Exit Do transfere o controle do loop mais interna e para o próximo nível mais alto de aninhamento.
Exemplo
No exemplo a seguir as instruções no loop continuam a execução até que o index variável é maior que 10. O Until cláusula está no final do loop.
Dim index As Integer = 0
Do
Debug.Write(index.ToString & " ")
index += 1
Loop Until index > 10
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
O exemplo a seguir utiliza um While cláusula em vez de um Until cláusula, e condition é testado no início do loop em vez de no final.
Dim index As Integer = 0
Do While index <= 10
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
No exemplo a seguir, condition interrompe o loop quando o index variável é maior do que 100. O Ifademonstrativo no loop, no entanto, faz com que o Exit Dodedemonstrativo para interromper o loop quando avariável de índiceé maior que 10.
Dim index As Integer = 0
Do While index <= 100
If index > 10 Then
Exit Do
End If
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
O exemplo a seguir lê todas as linhas em um arquivo de texto. O OpenText método abre o arquivo e retorna um StreamReader que lê caracteres. No Do...Loop condição, o Peekométodo da StreamReader determina se existem quaisquer caracteres adicionais.
Private Sub ShowText(ByVal textFilePath As String)
If System.IO.File.Exists(textFilePath) = False Then
Debug.WriteLine("File Not Found: " & textFilePath)
Else
Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)
Do While sr.Peek() >= 0
Debug.WriteLine(sr.ReadLine())
Loop
sr.Close()
End If
End Sub
Consulte também
Tarefas
Como: Melhorar o desempenho de um loop (Visual Basic)
Referência
Instrução For...Next (Visual Basic)
Tipo de dados booleanos (Visual Basic)
Declaração Saída (Visual Basic)
Instrução While...End While (Visual Basic)
Conceitos
Estruturas de loop (Visual Basic)
Estruturas de controle aninhado (Visual Basic)
Histórico de alterações
Date |
History |
Motivo |
Janeiro de 2011 |
Reorganizado os comentários e exemplos de adicionado. |
Aprimoramento de informações. |