Compartilhar via


Instrução While...End While (Visual Basic)

Executa uma série de instruções enquanto uma condição determinada é True.

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Partes

Termo

Definição

condition

Obrigatório. Expressão deBoolean . Se condition é Nothing, Visual Basic trata isso como False.

statements

Opcional. Uma ou mais instruções depois de While, que executam sempre condition são True.

Continue While

Opcional. Transfere controle para a próxima iteração do bloco de While .

Exit While

Opcional. Transfere controle fora do bloco de While .

End While

Obrigatório. Finaliza a definição do bloco While.

Comentários

Use uma estrutura de While...End While quando você desejar repetir um conjunto de instruções um número indefinido de vezes, enquanto uma condição permanece True. Se você deseja mais flexibilidade com onde você testa a condição ou resultado que você testa pelo, você pode preferir Instrução Do...Loop (Visual Basic). Se você desejar repetir as instruções um número definido de vezes, Instrução For...Next (Visual Basic) geralmente é uma opção melhor.

Se condition é True, qualquer statements é executado até que a declaração de End While seja encontrada. O controle retorna à declaração de While , e condition é verificado novamente. Se condition é ainda True, o processo é repetido. Se é False, o controle passa para a declaração que segue a declaração de End While .

A declaração de While sempre verifica a condição antes de iniciar o loop. Loop continua quando a condição permanece True. Se condition é False quando você inserir o primeiro loop, não executa mesmo uma vez.

condition normalmente resulta de uma comparação entre dois valores, mas pode ser qualquer expressão avaliada como Tipo de dados booliano (Visual Basic) um valor (True ou False). Esta expressão pode incluir um valor de outro tipo de dados, como um tipo numérico, que é convertido para Boolean.

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

Quando deixar

A declaração de Quando deixar pode fornecer uma outra maneira para sair de um loop de While . DeExit While transfere controle imediatamente para a declaração que segue a declaração de End While .

Você normalmente usa Exit While 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. Você pode usar Exit While quando você testar para uma condição que pode causar um loop interminável, que é um loop que é um número extremamente grande ou mesmo infinito de vezes. Você pode usar Exit While para escapar o loop.

Você pode colocar qualquer número de declarações de Exit While em qualquer lugar no loop de While .

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

Declaração de Continue While do transfere controle imediatamente para a próxima iteração do loop. Para mais informações, consulte Instrução Continue (Visual Basic).

Exemplo

Em o exemplo, as instruções no loop continuam a ser executado até que a variável de index é maior que 10.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

O exemplo a seguir ilustra o uso das instruções de Continue While e de Exit While .

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue 
    ' with the next iteration. 
    If index >= 5 And index <= 8 Then 
        Continue While 
    End If 

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop. 
    If index = 10 Then 
        Exit While 
    End If 
End While

Debug.WriteLine("")
' Output: 1 2 3 4 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 While , o método de Peek de StreamReader determina se o arquivo contém 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)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If 
End Sub

Consulte também

Referência

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

Instrução For...Next (Visual Basic)

Tipo de dados booliano (Visual Basic)

Instrução Exit (Visual Basic)

Instrução Continue (Visual Basic)

Conceitos

Estruturas de loop (Visual Basic)

Estruturas de controle aninhadas (Visual Basic)