Если число повторений заранее не известно и решение о завершении цикла принимается на основе анализа некоторого условия, то такой повторяющийся вычислительный процесс называется итерационным циклом.
В Паскале для организации итерационных циклов предусмотрено две алгоритмические структуры. Первая структура называется «цикл с предусловием» и использует оператор WHILE ... DO (рисунок 10. а). Вторая структура носит название «цикл с постусловием» и реализуется оператором REPEAT... UNTIL (рисунок 10. б).
Цикл с предусловием. Оператор WHILE ... DO.
Синтаксическая структура оператора цикла с предусловием имеет вид:
WHILE < Логическое выражение, или переменная > DO < Оператор >;
Как видно из блок-схемы (рисунок 10.а), перед каждым выполнением цикла анализируется логическое выражение или переменная. При значении TRUE выполняется оператор, составляющий тело цикла. При значении FALSE управление передается следующему за циклом оператору. Если условие ложно с самого начала, то оператор не выполняется ни разу.
Цикл с постусловием. Оператор REPEAT... UNTIL.
Недостатком оператора WHILE является то, что в цикле можно выполнить только один оператор, поэтому приходится в большинстве случаев использовать операторные скобки BEGIN...END. Этого недостатка лишен оператор цикла с постусловием (иногда его называют оператором «повтора», рисунок 10. б), имеющим следующий вид:
REPEAT
<Оператор 1>;
<Оператор 2>;
…
< Оператор К>
UNTIL <Условие>;
Ключевые слова REPEAT и UNTIL этого оператора играют роль операторных скобок BEGIN ... END. Поэтому эта конструкция тоже один оператор.
Break, Continue.
В циклах FOR, REPEAT, WHILE можно использовать процедуры BREAK и CONTINUE. Первая процедура позволяет досрочно выйти из цикла, не дожидаясь выполнения условий выхода. Вторая процедура позволяет начать новую итерацию цикла даже в том случае, если предыдущая итерация не завершена. Использование этих процедур ускоряет работу программы в рамках принципа структурного программирования.
Обозначение циклов на блок-схемах согласно ГОСТу.
ГОСТом предусмотрен единый блок для обозначения различных циклов (Рисунок 11). В блоке, соответствующем началу цикла указывается имя цикла (Как правило, это одна буква латинского алфавита) и начальное значение переменной цикла. В зависимости от оператора цикла, условие окончания записывается либо в блоке, соответствующем началу цикла (для операторов FOR…DO и WHILE…DO), либо в блоке, соответствующем концу цикла (для оператора REPEAT…UNTIL). Аналогично записывается и шаг изменения переменной цикла.
Предыдущая статья: Циклы с параметром. Оператор FOR.
Оглавление: Лекции по Pascal.
Следующая статья: Примеры использования различных операторов цикла.
Комментарии