Оператор While... End While (Visual Basic)
Выполняет ряд операторов до тех пор, пока задано условие True
.
Синтаксис
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Детали
Термин | Определение |
---|---|
condition |
Обязательный. Boolean Выражение. Если condition это Nothing так, Visual Basic обрабатывает его как False . |
statements |
Необязательно. Одно или несколько операторов, While которые выполняются True каждый разcondition . |
Continue While |
Необязательно. Передает управление в следующую итерацию While блока. |
Exit While |
Необязательно. Передает контроль из While блока. |
End While |
Обязательный. Завершает определение блока While . |
Замечания
While...End While
Используйте структуру, если требуется повторить набор операторов неограниченное количество раз, пока условие остаетсяTrue
. Если вы хотите больше гибкости с тем, где вы тестируете условие или какой результат тестируете его, вы можете предпочесть do... Оператор цикла. Если вы хотите повторить инструкции, заданное число раз, значение For... Следующая инструкция обычно является лучшим выбором.
Примечание.
Ключевое слово While
также используется в Do... Оператор цикла, предложение skip while и предложение Take While.
Если condition
это True
так, все statements
выполнение выполняется до тех пор, пока не будет обнаружена End While
инструкция. Затем элемент управления возвращается в инструкцию While
и condition
снова проверка. Если condition
по-прежнему True
, процесс повторяется. Если это False
так, элемент управления передается инструкции, которая следует инструкции End While
.
Оператор While
всегда проверка условие перед запуском цикла. Циклирование продолжается, пока условие остается True
. False
Если condition
при первом вводе цикла он не запускается даже один раз.
Обычно condition
результаты сравнения двух значений, но это может быть любое выражение, которое вычисляет логическое значение типа данных (True
или False
). Это выражение может включать значение другого типа данных, например числового типа, в который был преобразован Boolean
.
Вы можете вложить While
циклы, разместив один цикл внутри другого. Вы также можете вложить различные типы структур управления в другую. Дополнительные сведения см. в разделе "Вложенные структуры управления".
Выход в то время как
Оператор Exit While может предоставить другой способ выхода While
из цикла. Exit While
немедленно передает управление инструкции, следующей за инструкцией End While
.
Обычно используется Exit While
после вычисления определенного If...Then...Else
условия (например, в структуре). Может потребоваться выйти из цикла, если вы обнаружите условие, которое делает его ненужным или невозможным для продолжения итерации, например ошибочное значение или запрос на завершение. Вы можете использовать Exit While
при тестировании условия, которое может вызвать бесконечный цикл, который является циклом, который может выполнять чрезвычайно большое или даже бесконечное количество раз. Затем можно использовать Exit While
для экранирования цикла.
Вы можете разместить любое количество Exit While
операторов в While
любом месте цикла.
При использовании в вложенных While
циклах Exit While
передает управление из самого внутреннего цикла и в следующий более высокий уровень вложения.
Оператор Continue While
немедленно передает управление следующей итерации цикла. Дополнительные сведения см. в инструкции "Продолжить".
Пример 1
В следующем примере операторы в цикле продолжают выполняться до тех пор, пока index
переменная не превышает 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
Пример 2
В следующем примере показано использование инструкций Continue While
и 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
Пример 3
В следующем примере считываются все строки в текстовом файле. Метод OpenText открывает файл и возвращает StreamReader символы, которые считывают символы. While
В условии метод StreamReader
определяетPeek, содержит ли файл дополнительные символы.
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