
- •Ввод и вывод информации
- •Функция InputBox
- •Функция MsgBox
- •Допустимые значения аргумента buttons
- •Возвращаемые функцией значения
- •Организация ветвлений Инструкция If...Then...Else
- •Инструкция Select Case
- •Циклы в программе
- •Использование условных инструкций
- •Типы циклов
- •Инструкция For...Next
- •Инструкция For Each...Next
- •Инструкция Do...Loop
- •Повторение инструкций, пока условие имеет значение True
- •Повторение инструкций, пока условие не примет значение True
- •Выход из цикла Do...Loop
Повторение инструкций, пока условие имеет значение True
Имеется два способа проверки условия в инструкции Do...Loop с помощью ключевого слова While: условие проверяется до входа в цикл; условие проверяется после хотя бы однократного выполнения цикла.
Пример 17
В процедуре ChkFirstWhile условие проверяется до входа в цикл. Если myNum задать равным 9 вместо 20, инструкции внутри цикла выполняться не будут. В процедуре ChkLastWhile инструкции внутри цикла выполняются только один раз до того, как условие примет значение False.
Sub ChkFirstWhile()
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "Выполнено " & counter & " итераций цикла."
End Sub
Sub ChkLastWhile()
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "В цикле выполнено " & counter & " итераций."
End Sub
Повторение инструкций, пока условие не примет значение True
Имеется два способа проверки условия в инструкции Do...Loop с помощью ключевого слова Until: условие проверяется до входа в цикл (как продемонстрировано в процедуре ChkFirstUntil), или условие проверяется после хотя бы однократного выполнения цикла (как показано в процедуре ChkLastUntil). Итерации продолжаются, пока условие имеет значение False.
Пример 18
Sub ChkFirstUntil()
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "В цикле выполнено " & counter & " итераций."
End Sub
Sub ChkLastUntil()
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "В цикле выполнено " & counter & " итераций."
End Sub
Выход из цикла Do...Loop
Инструкцию Do...Loop можно завершить с помощью инструкции Exit Do.
Для прекращения бесконечного цикла используются клавиши ESC или CTRL+BREAK.
Пример 19
В этом примере переменной myNum присваивается значение, приводящее к бесконечному циклу. Инструкция If...Then...Else проверяет условие на myNum, а затем завершает инструкцию Do...Loop, предотвращая таким образом бесконечный цикл.
Sub ExitExample()
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "В цикле выполнено " & counter & " итераций."
End Sub