Compartilhar via


Do...Instrução de 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 ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop
-or-
Do
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop { While | Until } condition

Partes

Termo

Definição

Do

Obrigatório.Inicia a definição do loop de Do .

While

Exigido a não ser que Until for 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.Expressão deBoolean .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.

Continue Do

Opcional.Transfere controle para a próxima iteração do loop de Do .

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.

Você pode usar ou While ou Until para especificar condition, mas não ambos.

Você pode testar condition somente uma vez, no início ou no final do loop.Se você testar condition no início do loop (na declaração de Do ), o loop não pode executar até mesmo uma vez.Se você testar no final do loop (na declaração de Loop ), o loop sempre é executado pelo menos uma vez.

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

Você pode aninhar loop de Do colocando um loop dentro de outro.Você também pode aninhar diferentes tipos de estruturas de controle dentro da outra.Para mais informações, consulte Estruturas de controle aninhado (Visual Basic).

ObservaçãoObservação

A estrutura de Do...Loop oferece mais flexibilidade que While...Finalizar durante a instrução (Visual Basic) como o permite que você decidir terminar o loop quando as paradas de condition que são True ou quando se torna primeiro True.Também permite que você teste condition no início ou no final do loop.

A exit

A declaração de A exit pode fornecer uma maneira alternativa para sair Do…Loop.Transfere controle deExit Do imediatamente à declaração que segue a declaração de Loop .

Exit Do é geralmente usado após alguma condição é avaliada por exemplo, em um estrutura de If...Then...Else .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.Um uso de Exit Do é testar uma condição que pode causar um loop interminável, que é um loop que é um grande ou mesmo número infinito de vezes.Você pode usar Exit Do para escapar o loop.

Você pode incluir qualquer número de declarações de Exit Do em qualquer lugar em Do…Loop.

Quando usado dentro de loops aninhados de Do , transfere controle de Exit Do fora do loop mais interno e no de alto nível de aninhamento.

Exemplo

Em o exemplo, as instruções no loop continuam a ser executado até que a variável de index é maior que 10.A cláusula de Until 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 usa uma cláusula de While em vez de uma cláusula de Until , e condition é testado no início do loop em vez 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 

Em o exemplo, condition para o loop enquanto a variável de index é maior que 100.A declaração de If no loop, no entanto, faz com que a declaração de Exit Do para o loop enquanto a variá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 método de OpenText abre o arquivo e retorna StreamReader que lê caracteres.Em a condição de Do...Loop , o método de Peek de StreamReader determina se houver qualquer caractere adicional.

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

Referência

Para...Próxima instrução (Visual Basic)

Tipo de dados Boolean (Visual Basic)

Sair de instrução (Visual Basic)

While...Finalizar durante a instrução (Visual Basic)

Conceitos

Estruturas de loop (Visual Basic)

Estruturas de controle aninhado (Visual Basic)