Микропаскаль циклы. For, while и repeat.
Языки высокого уровня содержат разные типы циклических операторов. Паскаль не исключение и позволяет создать три типа циклов: цикл со счётчиком, с предусловием и с постусловием. Каждый из них призван решать определённые задачи и для большинства задач их хватает. В языках низкого уровня циклы строятся с помощью условий и операторов условного перехода.
Так как Паскаль академический язык, то его операторы читаются очень легко и они интуитивно понятны. Разберём один из самых частых операторов, цикл со счётчиком.
Цикл FOR
Для повторения операции заданное количество раз применяется цикл со счётчиком. Бывает два типа циклов с восходящим присваиванием:
for i := 1 to 9 do оператор
И с нисходящим присваиванием:
for i := 9 downto 1 do оператор
Как видно из примера, восходящее присваивание приводит к увеличению счётчика, а нисходящее к уменьшению. Поведение цикла происходит идёт следующим образом. Сначала переменной присваивается значение и исполняется внутренность цикла. Далее, в зависимости от типа цикла переменная увеличивается или уменьшается на единицу до указанного значения.
Обратите внимание, что менять значение переменной внутри цикла а так же использовать эту переменную после выхода из цикла без предварительной инициализации не рекомендуется. Дело в том, что невозможно предугадать значение переменной после выхода из цикла, так как цикл может завершиться досрочно. Использовать эту переменную внутри цикла можно по своему усмотрению.
Для того, чтобы выполнить не один оператор, а несколько можно воспользоваться составным оператором Begin .. End; и внешний вид изменится до такого состояния:
for i := 9 downto 1 do Begin оператор 1; оператор 2; ... оператор n; End;
Для принудительного выхода из цикла можно воспользоваться оператором break, а для прерывания итерации цикла на определённой точке и переходу к началу следующей итерации цикла служит команда continue.
Цикл WHILE
Цикл с предусловием. Пред входом в цикл проверяется условие и если оно истино, то цикл выполняется. После выполнения цикла опять проверяется истинность условия.
while i < 100 do оператор;
На его основе часто пишут бесконечный цикл для работы командоаппарата на микроконтроллерах.
while (TRUE) do Begin оператор 1; оператор 2; ... оператор n; End;
В таком виде цикл будет выполняться бесконечно...
Цикл REPEAT
Этот цикл первую итерацию выполнит всегда, так как условие проверяется в конце работы цикла. И этот цикл повторяется если условие ложное. Тут главное не запутаться, так как у for и while повторяются пока условие истина, а repeat при ложном. Ещё одно кардинальное отличие в том, что при необходимости использовать несколько операторов внутри цикла нет необходимости указывать составной оператор Begin .. End; и в качестве примера приведу бесконечный цикл на этом цикле.
repeat оператор 1; оператор 2; ... оператор n; until false;
Вот собственно и всё, что необходимо знать об этих операторах.
У каждого цикла своя собственная сфера применения.
Тэги: микроконтроллеры
Отредактировано:2020-09-23 08:38:47