Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 65

- 100 -

Оформляется такой цикл с помощью служебных слов REPEAT и UNTIL (повторять до):

REPEAT

Оператор1;

Оператор2;

...

ОператорN

UNTIL Условие;

Первое из них объявляет цикл и открывает его тело, а второе — закрывает тело и содержит условие окончания цикла. Тело цикла может быть пустым или содержать один и более операторов. В последнем случае слова BEGIN и END не нужны: их роль играют слова REPEAT и UNTIL.

Условие — это логическое значение, переменная или выражение с логическим результатом. Но работает оно здесь совсем не так, как в цикле WHILE. Если в цикле WHILE подразумевается алгоритм «пока условие истинно, выполнять операторы тела цикла», то цикл REPEAT...UNTIL соответствует алгоритму «выполнять тело цикла, пока не станет истинным условие».

Иными словами, в цикле с REPEAT...UNTIL условием продолжения итераций будет невыполнение условия (его значение False). Хорошей иллюстрацией к вышесказанному может быть конструкция «вечного цикла»:

REPEAT UNTIL False;

Этот цикл пустой и никогда не прекращающийся. Он хорош только в случае, когда нужно заблокировать программу, и, возможно, весь компьютер. (Но если отбросить шутки, то можно и его пристроить в дело. Обычно так организуются программы с повторяющимися действиями: вначале программы ставится REPEAT, а в конце — UNTIL False. А прервать цикл можно специальными операторами: Exit, Halt. Это имеет смысл, если условий завершения программы много или они очень сложны.)

Если условие конца цикла более гибкое, чем константа False, то в теле цикла должны содержаться операторы, влияющие на само условие. О предварительной корректности условия, как в случае цикла WHILE, заботиться уже необязательно.

6.6. Оператор цикла с параметром (FOR...DO)


Операторы циклов с пред- и с постусловием, хотя и обладают значительной гибкостью, не слишком удобны для организации

- 101 -

«строгих» циклов, которые должны быть проделаны данное число раз. Цикл с параметром вводится именно для таких случаев. Синтаксис оформления циклов с параметром следующий:

FOR ПараметрЦикла:=МладшееЗнач TO СтаршееЗнач DO Оператор;

или

FOR ПараметрЦикла := СтаршееЗнач DOWNTO МладшееЗнач DO

Оператор;

Слова FOR...TO (DOWNTO)...DO можно перевести как «для параметра от...до...делать».

Оператор, представляющий собой тело цикла, может быть простым, составным или пустым. В последнем случае за словом DO сразу ставится точка с запятой. Параметр цикла, а также диапазон его изменения (от стартового до конечного значения включительно) может быть только целочисленного или перечислимого типа. Сам параметр должен быть описан совместно с прочими переменными. Шаг цикла