Оператор while використовується в тому випадку, якщо деяку послідовність дій треба виконати кілька разів, причому необхідне число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми.
У загальному вигляді оператор while записується в такий спосіб:
while <умова> do
begin
// тут оператори, які треба виконати кілька разів
end;
де умова - вираз логічного типу, що визначає умову виконання операторів циклу.
Оператор while виконується в такий спосіб:
1. Спочатку обчислюється значення виразу умови.
2. Якщо значення виразу умови дорівнює False (умова не виконується), то на цьому виконання оператора while завершується.
3. Якщо значення виразу умови дорівнює True (умова виконується), то виконуються розташовані між begin і end оператори тіла циклу. Після цього знову перевіряється виконання умови. Якщо умова виконується, то оператори циклу виконуються ще раз. І так доти, поки умова не стане хибною (False).
Алгоритм, що відповідає оператору while, представлений на мал.1
В загальному виді оператор repeat записується в такий спосіб:
repeat
// оператори
until <умова> ;
де умова - вираз логічного типу, що визначає умову завершення циклу.
Оператор repeat виконується в такий спосіб:
1. Спочатку виконуються оператори тіла циклу, що перебувають між repeat і until.
2. Потім обчислюється значення виразу умови. Якщо умова хибна (значення виразу умови дорівнює False), то оператори тіла циклу виконуються ще раз.
3. Якщо умова істинна (значення виразу умови дорівнює True), то виконання циклу припиняється.
Таким чином, оператори циклу, що перебувають між repeat і until, виконуються доти, поки умова хибна (значення виразу умови дорівнює False).
Алгоритм, що відповідає оператору repeat, представлений на мал. 2.
Малюнок 2. Алгоритм, що відповідає оператору repeat
Увага! Оператори циклу, що перебувають між repeat і until, виконуються як мінімум один раз. Для того щоб цикл завершився, необхідно, щоб оператори циклу, що розташовуються між repeat і until, змінювали значення змінних, що входять у вираз умови.