Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uruchamia serię instrukcji, o ile dany warunek to True.
Składnia
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Części
| Termin | Definicja |
|---|---|
condition |
To jest wymagane.
Boolean wyrażenie. Jeśli condition element to Nothing, Visual Basic traktuje go jako False. |
statements |
Opcjonalny. Co najmniej jedna instrukcja po Whileinstrukcji , która jest uruchamiana za każdym razem condition to True. |
Continue While |
Opcjonalny. Przenosi kontrolkę do następnej While iteracji bloku. |
Exit While |
Opcjonalny. Transferuje kontrolę z While bloku. |
End While |
To jest wymagane. Kończy definicję While bloku. |
Uwagi
While...End While Użyj struktury, jeśli chcesz powtórzyć zestaw instrukcji w nieskończoność, o ile warunek pozostaje True. Jeśli chcesz mieć większą elastyczność dzięki temu, gdzie testujesz warunek lub jaki wynik go przetestujesz, możesz wybrać opcję Wykonaj... Loop, instrukcja. Jeśli chcesz powtórzyć instrukcje określoną liczbę razy, dla... Następna instrukcja jest zwykle lepszym wyborem.
Uwaga / Notatka
Słowo While kluczowe jest również używane w do... Instrukcja Loop, klauzula Skip While i klauzula Take While.
Jeśli condition parametr ma Truewartość , cały statements przebieg do momentu napotkania instrukcji End While . Kontrolka następnie wraca do instrukcji While i condition jest ponownie sprawdzana. Jeśli condition nadal Truewystępuje , proces jest powtarzany. Jeśli jest Falseto , kontrolka przechodzi do instrukcji, która jest zgodna z instrukcją End While .
Instrukcja While zawsze sprawdza warunek przed uruchomieniem pętli. Pętla jest kontynuowana, gdy warunek pozostaje True. Jeśli condition po False raz pierwszy wprowadzisz pętlę, nie zostanie ona uruchomiona nawet raz.
Zwykle condition wyniki są wynikiem porównania dwóch wartości, ale może to być dowolne wyrażenie, które daje w wyniku wartość typu danych logicznych (True lub False). To wyrażenie może zawierać wartość innego typu danych, na przykład typ liczbowy, który został przekonwertowany na Booleanwartość .
Pętle można zagnieżdżać While , umieszczając jedną pętlę w innej. Można również zagnieżdżać różne rodzaje struktur sterujących w obrębie siebie. Aby uzyskać więcej informacji, zobacz Zagnieżdżone struktury sterujące.
Zakończ, podczas gdy
Instrukcja Exit While może zapewnić inny sposób zakończenia While pętli.
Exit While natychmiast przesyła kontrolkę do instrukcji, która jest zgodna z instrukcją End While .
Zwykle używasz Exit While wartości po obliczeniu pewnego warunku (na przykład w If...Then...Else strukturze). Możesz chcieć zamknąć pętlę, jeśli wykryjesz warunek, który sprawia, że iteracja jest niepotrzebna lub niemożliwa, na przykład błędna wartość lub żądanie zakończenia. Można użyć Exit While podczas testowania warunku, który może spowodować nieskończoną pętlę, która jest pętlą, która może uruchamiać bardzo dużą lub nawet nieskończoną liczbę razy. Następnie możesz użyć polecenia Exit While , aby uciec od pętli.
W pętli można umieścić dowolną liczbę instrukcji Exit WhileWhile .
W przypadku użycia w zagnieżdżonych While pętlach Exit While transferuje kontrolę poza pętlę najbardziej wewnętrzną i do następnego wyższego poziomu zagnieżdżania.
Instrukcja Continue While natychmiast przenosi kontrolkę do następnej iteracji pętli. Aby uzyskać więcej informacji, zobacz Instrukcja kontynuacji.
Przykład 1
W poniższym przykładzie instrukcje w pętli będą nadal działać, dopóki zmienna index nie będzie większa niż 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
Przykład 2
Poniższy przykład ilustruje użycie instrukcji Continue While i 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
Przykład 3
Poniższy przykład odczytuje wszystkie wiersze w pliku tekstowym. Metoda OpenText otwiera plik i zwraca element StreamReader , który odczytuje znaki.
While W warunku metoda StreamReader określa, Peek czy plik zawiera dodatkowe znaki.
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