Для організації циклу з визначеною та з невідомою заздалегідь кількістю повторень призначено оператор циклу з передумовою:
WHILE <ЛВ> DO <оператор> ;
Оператор ( простий або складений ), що стоїть за службовим словом DO і зветься тілом циклу, буде виконуватися циклічно, поки виконується логічна умова , тобто поки значення <ЛВ>≡TRUE. Сама умова може бути логічною константою, змінною або виразом з логічним результатом. Умова перевіряється до початку виконання кожного повторення. Тому, якщо умова одразу ж не виконується, тіло циклу не буде виконано жодного разу, а управління передасться оператору, що стоїть одразу за тілом циклу.
При використанні оператора циклу с передумовою треба пам’ятати таке:
– щоб цикл мав можливість коли-небудь завершитися, дані. які формують умову, повинні змінюватися в тілі циклу;
– умова повинна складатися із коректних виразів та значень, визначених ще до першого виконання тіла циклу.
Приклад. Скласти програму обчислення N! .
PROGRAM FACTOR IAL;
{ Обчислення N! }
VAR
K,N,Factorial : INTEGER;
BEGIN
Factorial:=1; {0!=1}
K:=1; READ (N) ;
WHILE K<=N DO
BEGIN Factorial:= Factorial*K; K:= K+1 END ;
WRITELN (N,’!= ‘, Factorial)
END.
Поки значення змінної K буде менше за N або буде дорівнювати N , буде накопичуватися добуток, що передбачено складеним оператором , який стоїть за службовим словом DO і є тілом циклу. В тілі циклу також відбувається зміна значення змінної K на 1, що забезпечує закінчення циклічного процесу і вихід із циклу . Наступний оператор , оператор виведення , дає змогу одержати на екрані результат в зручному для розуміння вигляді. Так, якщо , скажімо ви ввели значення N=5, на екрані побачите:5!= 120. Якщо надати змінній N значення 0, тіло циклу не виконається жодного разу і змінна Factorial збереже значення 1.
Оператор циклу з передумовою відповідає базовій структурі “ЦИКЛ ПОКИ”.