Что такой цикл
Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода).
Виды циклов:
- Безусловные циклы;
- Цикл с предусловием;
- Цикл с постусловием;
- Цикл с выходом из середины;
- Цикл со счётчиком;
- Совместный цикл.
Классификация циклов:
For
В цикле for
называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
Счетчик — это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to
, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto
, то значение параметра будет уменьшаться на единицу.
Количество итераций цикла for
известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.
While
В цикле while
является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.
Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true
. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false
. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.
Repeat
В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while
, здесь всё наоборот: в случае true происходит выход из цикла, в случае false
– его повторение.
В цикле while
может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false
. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat
– цикл с постусловием.
В цикле repeat
логическое выражение стоит после тела цикла. Причем, в отличие от цикла while
, здесь всё наоборот: в случае true
происходит выход из цикла, в случае false
– его повторение.