Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.
Формат записи:
while <условие продолжения повторений> do
<тело цикла>;
Условие — булевское выражение, тело цикла — простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и переход к первому после while оператору.
Примером работы while может служить программа, которая производит суммирование 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 и их суммы.
Затем выполняются цикл ввода 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. |