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

Executa uma série de instruções, desde que uma determinada condição seja True.

Sintaxe

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

Partes

Termo Definição
condition Obrigatório. Boolean expressão. Se condition for Nothing, o Visual Basic trata-o como False.
statements Opcional. Uma ou mais instruções a seguir While, que são executadas sempre condition é True.
Continue While Opcional. Transfere o controle para a próxima iteração do While bloco.
Exit While Opcional. Transfere o controle para fora do While bloco.
End While Obrigatório. Encerra a definição do While bloco.

Observações

Use uma While...End While estrutura quando quiser repetir um conjunto de instruções um número indefinido de vezes, desde que uma condição permaneça True. Se você quiser mais flexibilidade com onde você testa a condição ou qual resultado você testa, você pode preferir o Do... Instrução Loop. Se você quiser repetir as instruções um determinado número de vezes, o ... Next Statement é geralmente uma escolha melhor.

Nota

A While palavra-chave também é usada no Do... Loop Statement, a cláusula skip while e a cláusula take while.

Se condition for True, toda a statements execução até que a End While instrução seja encontrada. Em seguida, Control While retorna à instrução e condition é novamente verificado. Se condition ainda Trueestiver, o processo é repetido. Se for , o Falsecontrole passa para a instrução que segue a End While instrução.

A While instrução sempre verifica a condição antes de iniciar o loop. O looping continua enquanto a condição permanece True. Se condition é False quando você entra no loop pela primeira vez, ele não é executado nem uma vez.

O condition geralmente resulta de uma comparação de dois valores, mas pode ser qualquer expressão avaliada como um valor de Tipo de Dados Booleano (True ou False). Essa expressão pode incluir um valor de outro tipo de dados, como um tipo numérico, que foi convertido em Boolean.

Você pode aninhar While loops colocando um loop dentro de outro. Você também pode aninhar diferentes tipos de estruturas de controle umas nas outras. Para obter mais informações, consulte Estruturas de controle aninhadas.

Sair enquanto

A instrução Exit While pode fornecer outra maneira de sair de um While loop. Exit While transfere imediatamente o controle para a instrução que se segue à End While declaração.

Você normalmente usa Exit While depois que alguma condição é avaliada (por exemplo, em uma If...Then...Else estrutura). Talvez você queira sair de um loop se detetar uma condição que torne desnecessário ou impossível continuar a iteração, como um valor incorreto ou uma solicitação de encerramento. Você pode usar Exit While quando testar uma condição que pode causar um loop infinito, que é um loop que pode ser executado um número extremamente grande ou até infinito de vezes. Em seguida, você pode usar Exit While para escapar do loop.

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

Quando usado em loops aninhados, Exit While transfere While o controle para fora do loop mais interno e para o próximo nível mais alto de aninhamento.

A Continue While instrução transfere imediatamente o controle para a próxima iteração do loop. Para obter mais informações, consulte Declaração de continuação.

Exemplo 1

No exemplo a seguir, as instruções no loop continuam a ser executadas até que a index variável seja 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 

Exemplo 2

O exemplo a seguir ilustra o uso das Continue While instruções and 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

Exemplo 3

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ê os caracteres. While Na condição, o Peek método do determina se o StreamReader 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