logo
2012_METODICh_POSOBIE_PASCAL

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

Оператор цикла WHILE, известный так же как оператор цикла с предусловием, имеет следующий вид.

while p do s;

Работа оператора определяется следующей схемой:

При выполнении этого оператора сначала вычисляется некоторое логическое выражение р (условие), принадлежащее типу Boolean, в случае истинности которого выполняется оператор s (являющийся, как правило, составным). После этого вычисление условия, его проверка и выполнение оператора s повторяются до тех пор, пока выражение р не становится равным FALSE. Затем управление передается следующему (после WHILE) оператору программы.

Если условие р равно FALSE с самого начала, оператор s, который называется телом цикла, не выполнится ни разу. Если условие р тождественно TRUE (while true do s), цикл будет бесконечным. Очевидно, для того чтобы тело цикла выполнилось всего несколько раз (чтобы количество итераций было больше нуля, но меньше бесконечности), значение условия должно каждый раз преобразовываться в теле цикла.

Для того чтобы понять разницу между операторами цикла WHILE и FOR, рассмотрим соответствующие фрагменты программ, выводящие на экран строки звездочек.

Цикл WHILE Цикл FOR

Line:=l; for Line:=l to n do

while Line<n do WriteLn(‘**********’);

begin

WriteLn(‘**********’);

Line:= Line+1

end;

Если переменная Line объявлена (в разделе описания переменных) как принадлежащая типу Integer, оператор FOR выведет на экран п строк звездочек. Реализация задачи с помощью оператора FOR выглядит проще, поскольку здесь нет нужды в операторе присваивания Line : =1 и Line : = Line+1.