Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.
Формат записи:
while <условие продолжения повторений> do
<тело цикла>;
Условие - булевское выражение, тело цикла - простой или составной оператор.
Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и переход к первому после while оператору.
Пример программы с использованием оператора повтора while
Программа DemoWhile производит суммирование 10 произвольно введенных целых чисел.
program DemoWhile;
const
Limit =10; {Ограничение на количество вводимых чисел}
var Count, Item, Sum: integer;
begin
Count:=0; {Счетчик чисел}
Sum:= 0; {Сумма чисел}
while (Count < Limit) do {Условие выполнения цикла}
begin
Count:= Count+1;
Write('Введите ', Count, ' - e целое число: ');
Readln(Item);{Ввод очередного числа с клавиатуры}
Sum:= Sum+Item;
end;
Writeln('Сумма введенных чисел равна ', Sum) ;
end.
В данном примере в разделе описания констант описана константа Limit=10, задающая ограничение на количество вводимых чисел. В разделе описания переменных описаны переменные Count, Item, Sum целочисленного типа. В начале выполнения программы обнуляются значения счетчика введенных чисел Count и их суммы Sum. Затем выполняются цикл ввода 10 чисел и их суммирование. Вначале оператор условия while проверяет условие Count < Limit. Если условие верно, то выполняется составной оператор в теле цикла:
begin
Count:= Count+1;
Write('Введите ', Count, '-e целое число: ');
Readln(Item) ;
Sum:= Sum+Item;
End;
в котором вводится значение очередного числа, и на это значение увеличивается значение суммы. После этого управление в программе вновь передается оператору цикла while, опять проверяется условие Count < Limit. Если условие верно, то выполняется составной оператор и т. д., пока значение переменной Count будет меньше 10. Как только значение Count станет равно 10 и условие Count < Limit не будет соблюдено, выполнение цикла завершится, а управление в программе будет передано на оператор, находящийся за словом end, т. e. первый оператор за границей while. Это вызов процедуры Writeln, которая выведет сообщение 'Сумма введенных чисел равна' и напечатает значение переменной Sum.