Конструкция, позволяющая организовать как цикл с предусловием, так и цикл с постусловием. Имеет 4 модификации:
1) условие True в начале цикла (цикл с предусловием true)
Do While <условие>
<блок операторов>
Exit Do
<блок операторов>
Loop
Цикл выполняется до тех пор, пока истинно <условие>. Минимальное число повторений тела цикла - 0. Оператор Exit Do предназначен для прекращения цикла.
2) условие True в конце цикла (цикл с постусловием true)
Do
<блок операторов>
Exit Do
<блок операторов>
Loop While <условие>
Цикл выполняется хотя бы один раз, в конце выполняется проверка <условия>.
3) условие False в начале цикла (цикл с предусловием false)
Do Until <условие>
<блок операторов>
Exit Do
<6лок операторов>
Loop
Until указывает, что цикл выполняется до тех пор, пока <условие> не станет истинным. Минимальное число повторений тела цикла - 0.
4) условие False в конце цикла (цикл с постусловием false)
Do
<блок операторов>
Exit Do
<блок операторов>
Loop Until <условие>
Условие проверяется в конце, цикл прекращается, когда условие станет истинным. Цикл обязательно повториться хотя бы один раз.
Примеры написания циклов:
| Текст программы
| Комментарий
|
| Sub Do_Proc()
| - объявление имени процедуры без параметров
|
| Dim A As Single;
Dim I As Integer
| - объявление переменных
|
| Randomize
| - генератор случайных чисел
|
| Do While True
| - начало цикла Do. Условия выполнение цикла всегда истинно, т.е. цикл бесконечный
|
| A = Rnd
| - присвоение переменной случайных чисел
|
| Debug.Print a
| - печать случайного числа
|
| If A>0.99 Then
Exit Do
| - условие - при его выполнении происходит выход из цикла
|
| Loop
| - конец цикла
|
| End Sub
| - конец процедуры
|