Оператори циклу Do.

Алгоритмічна конструкція “цикл” полягає у повторенні певної послідовності дій (інструкцій). Очевидно, що для практики цінними є лише скінченні цикли, які, відповідно, повинні мати деяку умову для визначення того, чи повторювати послідовність дій черговий раз, чи завершити таке повторення. Послідовність інструкцій, що повторюється в циклі прийнято називати тілом циклу, а самі цикли ділити на цикли з перед- та післяумовою, залежно від того коли виконується перевірка умови завершення циклу — до, чи після чергового виконання його тіла.

У OpenOffice.org Basic цикли з передумовою та цикли з післяумовою можна записувати за допомогою оператора циклу Do. Так само, як і у VBA, в OOo Basic існує чотири різні варіанти оператора Do. Умова виходу з циклу може задаватися службовими словами While (поки) та Until (до), при цьому в обидвох випадках умова може бути розміщена як на початку так і в кінці тіла циклу. Тобто є два варіанти циклу з передумовою та два – з післяумовою. Цикли з передумовою:

Do While <Умова>
<Інструкції>
[Exit Do]
<Інструкції>
Loop

Do Until <Умова>
<Інструкції>
[Exit Do]
<Інструкції>
Loop

В першому варіанті цикл виконується поки результат перевірки умови має логічне значення True, в другому – навпаки: якщо умова набуває значення True, виконання циклу припиняється.
Цикли з післяумовою:

Do
<Інструкції>
[Exit Do]
<Інструкції>
Loop While <Умова>

Do
<Інструкції>
[Exit Do]
<Інструкції>
Loop Until <Умова>

Ці два варіанти оператора циклу відрізняються від попередніх тим, що інструкції в тілі циклу виконуватимуться хоча б один раз, оскільки перевірка умови здійснюється після виконання циклу.

Крім розглянутих чотирьох варіантів операторів циклу Do у VBA можна використовувати також спрощений варіант оператора циклу з передумовою:

While <Умова>
<Інструкції>
Wend

Він виконує послідовність інструкцій, доки задана умова має значення True і є спрощеним записом оператора

Do While <Умова>
<Інструкції>
Loop

Оскільки оператори циклу з передумовою та післяумовою є взаємозамінними, то в більшості випадків користуються саме оператором While а не операторами Do.