ОПЕРАТОРЫ ЦИКЛА.

 

Цикл со счётчиком (известным числом повторений):

 

FOR Счётчик:=начальное значениеTO конечное значениеDO

Begin

{Инструкции}

End;

FOR Счётчик:=начальное значениеDOWNTO конечное значениеDO

Begin

{Инструкции}

End;

Параметр (счетчик) цикла For может изменяться (увеличиваться или уменьшаться) каждый раз при выполнении тела цикла только на 1. Если нужен другой шаг изменения параметра, предпочтительнее циклы Repeat или While.

Переменная-счетчик должна быть порядкового типа: чаще – целочисленная, реже – символьного, логического или перечисляемого типов. Использование вещественного типа недопустимо.

Начальное и конечное значение счетчика могут быть константами, переменными, выражениями и должны принадлежать одному и тому же типу данных. Их нельзя изменять во время выполнения цикла.

Цикл с постусловием (число повторение может быть неизвестно):

REPEAT

{Инструкции}

UNTILУсловие выхода из цикла;

Цикл с предусловием (число повторение может быть неизвестно):

WHILE Условие выполнения циклаDO

Begin

{Инструкции}

End;

!! Переменная, которая участвует в условии выхода из цикла Repeat или While, обязательно должна изменяться в цикле (иначе цикл будет выполняться бесконечно).

Инструкции цикла Repeat всегда будут выполнены хотя бы 1 раз.

Для успешного завершения цикла Repeat или While в его теле обязательно должны быть команды, оказывающие влияние на условие выполнения цикла.

While используется в тех же задачах, что и Repeat, но удобнее в случаях, когда возможна ситуация невыполнения цикла.

В операторе While никогда не ставится « ; » после слова do. Ее постановка не приводит к сообщению об ошибке, но компилятор считает, что тело цикла – это пустой оператор, и потому результат работы программы будет неверен.

 

Дополнительные полезные операторы:

 

CONTINUE - прекращение выполнения текущей итерации цикла и переход к анализу конца цикла и переходу к следующей итерации

BREAK – прекращение выполнения ближайшего охватывающего цикла.

HALT – прерывает выполнение программы.

GOTO– переход на оператор, отмеченный меткой.

PRED(s) – функция возвращает элемент, предшествующий s в списке значений типа. Тип результата совпадает с типом s. Если предшествующего s элемента не существует, возникает программное прерывание.

SUCC(s) – функция возвращает значение следующее за s в списке значений типа. Тип результата совпадает с типом s.

DEC(x,n) – процедура уменьшает значение целочисленной переменной x на n (т.е. это аналог команды x:=x-n). При отсутствии необязательного параметра n процедура принимает вид DEC(x), а значение x уменьшается на 1.

INC(x,n) – процедура увеличивает значение целочисленной переменной x на n (т.е. это аналог команды x:=x+n). При отсутствии нобязательного параметра n процедура принимает вид DEC(x), а значение x увеличивается на 1.