Оператор 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

См. также