Terwijl... Instructie End While (Visual Basic)
Voert een reeks instructies uit zolang een bepaalde voorwaarde is True
.
Syntaxis
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
generator
Term | Definitie |
---|---|
condition |
Vereist. Boolean Expressie. Als condition dat het is Nothing , behandelt Visual Basic het als False . |
statements |
Optioneel. Een of meer instructies volgen While , die elke keer condition True worden uitgevoerd. |
Continue While |
Optioneel. Hiermee wordt het besturingselement overgedragen naar de volgende iteratie van het While blok. |
Exit While |
Optioneel. Hiermee wordt het besturingselement buiten het While blok overgedragen. |
End While |
Vereist. Hiermee wordt de definitie van het While blok beëindigd. |
Opmerkingen
Gebruik een While...End While
structuur als u een reeks instructies voor onbepaalde tijd wilt herhalen, zolang een voorwaarde blijft True
bestaan. Als u meer flexibiliteit wilt met waar u de voorwaarde test of welk resultaat u het test, kunt u de voorkeur geven aan de do... Lusinstructie. Als u de instructies een bepaald aantal keren wilt herhalen, wordt de For... Next Statement is meestal een betere keuze.
Notitie
Het While
trefwoord wordt ook gebruikt in de do... Lusinstructie, de Component Skip While en de Take While-component.
Als condition
dat het is True
, worden alle statements
uitvoeringen uitgevoerd totdat de End While
instructie wordt aangetroffen. Control keert vervolgens terug naar de While
instructie en condition
wordt opnieuw gecontroleerd. Als condition
het nog steeds True
is, wordt het proces herhaald. Als dit het geval is False
, wordt de controle doorgegeven aan de instructie die volgt op de End While
instructie.
De While
instructie controleert altijd de voorwaarde voordat de lus wordt gestart. Herhalen gaat door terwijl de voorwaarde blijft True
bestaan. False
Als condition
u de lus voor het eerst invoert, wordt deze niet één keer uitgevoerd.
Het condition
resultaat is meestal van een vergelijking van twee waarden, maar het kan elke expressie zijn die resulteert in een Booleaanse waarde voor het gegevenstype (True
of False
). Deze expressie kan een waarde bevatten van een ander gegevenstype, zoals een numeriek type, dat is geconverteerd naar Boolean
.
U kunt lussen nesten door de ene lus binnen een andere lus te plaatsen While
. U kunt ook verschillende soorten controlestructuren in elkaar nesten. Zie Geneste besturingsstructuren voor meer informatie.
Afsluiten tijdens
De instructie Exit While kan een andere manier bieden om een While
lus af te sluiten. Exit While
onmiddellijk de controle overdraagt naar de instructie die volgt op de End While
instructie.
U gebruikt Exit While
meestal nadat een bepaalde voorwaarde is geëvalueerd (bijvoorbeeld in een If...Then...Else
structuur). Mogelijk wilt u een lus afsluiten als u een voorwaarde detecteert die het onnodig of onmogelijk maakt om door te gaan met herhalen, zoals een onjuiste waarde of een beëindigingsaanvraag. U kunt Exit While
gebruiken wanneer u test op een voorwaarde die een eindeloze lus kan veroorzaken. Dit is een lus die een extreem groot of zelfs oneindig aantal keren kan worden uitgevoerd. Vervolgens kunt u deze gebruiken Exit While
om de lus te ontsnappen.
U kunt een willekeurig aantal Exit While
instructies overal in de While
lus plaatsen.
Bij gebruik binnen geneste While
lussen brengt Exit While
u de controle buiten de binnenste lus en in het volgende hogere nestniveau over.
Met Continue While
de instructie wordt het besturingselement onmiddellijk overgedragen naar de volgende iteratie van de lus. Zie Continue-instructie voor meer informatie.
Voorbeeld 1
In het volgende voorbeeld blijven de instructies in de lus worden uitgevoerd totdat de index
variabele groter is dan 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
Voorbeeld 2
In het volgende voorbeeld ziet u het gebruik van de Continue While
en Exit While
instructies.
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
Voorbeeld 3
In het volgende voorbeeld worden alle regels in een tekstbestand gelezen. De OpenText methode opent het bestand en retourneert een StreamReader bestand dat de tekens leest. In de While
voorwaarde bepaalt de Peek methode van de StreamReader
methode of het bestand extra tekens bevat.
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