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.
Dica
A palavra-chave de While também é usado em Instrução Do...Loop (Visual Basic), em Ignorar cláusula While (Visual Basic) e em Cláusula Take While (Visual Basic).
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 Continue (Visual Basic)