ОПЕРАТОРЫ ЦИКЛА.
Цикл со счётчиком (известным числом повторений):
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.