Он
создаёт логически управляемый цикл. Имеет 4 модификации:
а)
условие True в начале цикла
Do
[While <условие>] – выполняется, пока условие истинно
[<блок
операторов>]
[Exit
Do]
[<блок
операторов>]
Loop
б)
условие True в конце цикла:
Do
[<блок
операторов>]
[Exit
Do]
[<блок
операторов>]
Loop
[While <условие>]
в)
условие False в начале цикла:
Do
[Until <условие>] – выполняется, пока условие
[<блок
операторов>] не станет истинным
[Exit
Do]
[<блок
операторов>]
Loop
г)
условие False в конце цикла:
Do
[<блок
операторов>]
[Exit
Do]
[<блок
операторов>]
Loop
[Until <условие>]
Пример
1:
Option
Explicit
Sub
Do_Rnd()
Dim
a As Single: Dim I as Integer
Randomize
Do
While True
a
= Rnd()
Debug.Print
a ‘печать случайного числа
If
a>0.99 Then Exit Do
Loop
End
Sub
Пример
2: Вычислить сумму в каждом столбце матрицы
Sub
CommandButton1_Click()
Dim
i, j, s(3), x(5, 3) As Integer
For
j = 0 To 2
s(j)
= 0
For
i = 0 To 4
x(i,
j) = Cells(i + 1, j + 1)
s(j)
= s(j) + x(i, j)
Next
i
Лист1.Range("E"
& i + 1).Value = s(j)
Next
j
End
Sub
Пример
3: Найти сумму всех вводимых чисел.
S=0:
Do
x=InputBox
(“Введите число”)
If
Not IsNumeric (x) then Exit Do
S=S+x
Loop
Пример
4:
Код, ожидающий правильного ввода пароля
Do
: Пароль = InputBox(“Введите пароль”)
Loop
Until Пароль = “Привет”