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 True
estiver, o processo é repetido. Se for , o False
controle 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