Поделиться через


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

Оператор Exit (Visual Basic)

Оператор Continue (Visual Basic)

Основные понятия

Циклические структуры (Visual Basic)

Вложенные структуры управления (Visual Basic)