Создание циклов с помощью Do While.
Первой циклической структурой, где условие определителя проверяется перед выполнением цикля, является Do While, имеющего следующий синтаксис.
Do Whilecondition
Statements
Loop
Где condition представляет логическое выражение для определителя цикла, statements — одну или большое количество инструкций VBA (или вообще ни одной из них), которые составляют тело цикла; все они выполняются каждый раз когда выполняется цикл. Ключевое слово Loop, находящееся после statements, сигнализирует что достигнут конец цикла, и указывает точку с которой выполняется переход в начало цикла, чтобы проверить условие определителя.
В инструкции Do Whileвыражение condition находится в начале цикла, поэтому условие определителя проверяется перед выполнением самого цикла. Поскольку в этом случае используется ключевое слово While, цикл будет выполняться до тех пор, пока логическое выражение, представленное condition, будет иметь значение True.
G | Если логическое выражение, представленное condition, будет равно False при первом выполнении инструкции Do While, то цикл будет просто пропущен без всякого выполнения. |
Пример цикла Do While
Эта процедура считает введенные пользователем нечетные числа, прекращая роботу тогда, когда таких чисел станет 10. Затем введенные числа выводятся на экран.
Обратите внимание на использование функции Mod.
Sub Count_OddNums()
Const ocTitle = "Подсчет нечетных чисел"
Dim OddCount As Integer ' счетчик нечетных чисел
Dim OddStr As String ' строка для отображения нечетных чисел
Dim Num ' переменная типа Variant для ввода
OddStr = " " ' Строка для чисел пока что пуста
OddCount = 0 ' Счетчик чисел пока что равен нулю
Do While OddCount < 10
Num = InputBox("", ocTitle)
Цикл Do While…Loop |
OddCount = OddCount + 1
OddStr = OddStr & Num & " "
End If
Loop
MsgBox "Вы ввели такие нечетные числа:" & Chr(13) _
& OddStr, , ocTitle
End Sub
þ | 5. Введите пример. Выполните его. 6. Как изменится процедура, если подсчитывать все числа кратные 3? а если нечетные? Ответ запишите в тетрадь. 7. Процедуру для ввода пяти чисел кратных 3 введите и проверьте. |
Создание циклов с помощью Do Until.
В инструкции Do вариант Do While — это только один из тех способов ее создания, в которых условие определителя проверяется перед выполнением цикла. Вторым из этих способов является вариант Do Until, имеющий следующий синтаксис.
Do Untilcondition
statements
Loop
Где condition представляет логическое выражение для определителя цикла, а statements — инструкции VBA, которые составляют тело цикла. Ключевое слово Loop, находящееся после statements, сигнализирует, что достигнут конец цикла, и указывает точку, с которой выполняется переход в начало цикла, чтобы проверить условие определителя.
В инструкции Do until выражение condition находится в начале цикла, поэтому условие определителя проверяется перед выполнением самого цикла. В связи с тем, что в этом случае используется ключевое слово Until (сто означает пока нет чего-либо), цикл будет выполняться до тех пор, пока логическое выражение, представленное condition, будет иметь значение False.
G | Если логическое выражение, представленное condition, будет равно True при первом выполнении инструкции Do Until, то цикл будет просто пропущен без всякого выполнения. |