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