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çãoObservaçã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.