Цей цикл є найбільш універсальним з циклів, що логічно перериваються. Існує 4 конфігурації цього циклу:
1. Умова TRUE на початку
2. Умова TRUE в кінці
3. Умова FALSE на початку
4. Умова FALSE в кінці
1. DO WHILE умова БЛОК [EXIT DO] БЛОК LOOP | 2. DO UNTIL умова БЛОК [EXIT DO] БЛОК LOOP |
3. DO БЛОК [EXIT DO] БЛОК LOOP WHILE умова | 4. DO БЛОК [EXIT DO] БЛОК LOOP UNTIL умова |
Оператор EXIT DO – призначений для передчасного припинення циклу і зазвичай застосовується в структурі IF, яка перевіряє альтернативну умову переривання циклу.
При читанні даних з файлу можна використовувати функцію EOF() для перевірки чергової частки файлу і пошуку маркера кінця.
Приклад: Пошук першого позитивного елементу масиву.
Function Example2(Massive) As Single
DIM J As Integer, Value As Integer
J = LBOUND(Massive) – 1
DO
J = J +1
IF J>UBOUND(Massive) Then
Value = CVErr(xlErrValue)
EXIT DO
END IF
Value = Massive(J)
LOOP UNTIL Value > 0
Example2 = Value
End Function
Застосування циклів WHILE-WEND
Цикл WHILE-WEND – еквівалентний структурі DO WHILE-LOOP
Синтаксис:
WHILE умова
БЛОК
WEND
У структурі WHILE-WEND відсутній оператор EXIT що дозволяє перервати цикл до його виконання, а також відсутня можливість записати умову в кінці циклу.