%

Попробуй
бесплатно

19:09:09

6 дней

%

  • Компьютерная академия
  • Школа
  • Колледж
  • ВУЗ
  • Английский
  • Не школа музыки
Москва
Гайд

Циклы в Паскале: for, while, repeat

Без циклов не работают массивы, не строятся алгоритмы, не пишется ни одна серьезная программа. Разбираем for, while и repeat на Паскале — с нуля, с живыми примерами и типичными ошибками

Цикл работает по принципу «пока выполняется условие — повторяй»
Цикл работает по принципу «пока выполняется условие — повторяй»

В Паскале три вида циклов: for, while, repeat..until. У каждого своя логика и свой класс задач. Академия ТОП учит выбирать подходящий и правильно использовать его.

Что такое циклы и для чего они нужны

Цикл — это конструкция в программировании, которая позволяет многократно выполнять один и тот же участок кода. Вместо того чтобы писать повторять идентичные команды десятки или сотни раз, вы один раз описываете действие и указываете, при каких условиях или сколько раз его нужно повторить.

Без циклов программирование было бы крайне неудобным и неэффективным. Например, представьте, что нам нужно вывести все числа от 1 до 1 000 000. Писать цифру за цифрой — неоптимальное решение. Цикл решает эту задачу. Он экономит время; делает код короче, чище и значительно легче в поддержке; устраняет повторяющиеся участки. Код становится более гибким: поведение цикла можно легко изменить, поменяв всего одно условие.

Нет времени читать статью?

Получите ответы от практикующих специалистов на бесплатном занятии в вашем городе

Нажимая на кнопку, я соглашаюсь на обработку персональных данных

for — цикл со счетчиком

for — цикл с известным количеством итераций. Идеален, когда вы точно знаете, сколько раз нужно повторить действия.

 Синтаксис цикла for
Синтаксис цикла for

Классический пример — вывести числа от 1 до 10. Переменная цикла объявляется как integer (целое число). Шаг ±1.

Цикл последовательно увеличивает значение переменной i от 1 до 10 и выводит каждое число на экран
Цикл последовательно увеличивает значение переменной i от 1 до 10 и выводит каждое число на экран

Типичные ошибки

  • for i := 10 to 1 do (начало > конец при to). При использовании to Паскаль ожидает, что начальное значение ≤ конечного. Если это не так, цикл просто пропускается. Используйте downto для обратного счета.

  • Изменение счетчика i внутри тела цикла — стандарт Паскаля запрещает изменять переменную-счетчик внутри for. Это нарушает логику цикла — компилятор выдаст ошибку. Используйте while или repeat, если нужно менять шаг.

  • Использование нецелого типа (например, Real) в качестве счетчика.

  • Использование одной и той же переменной в разных for. После завершения for значение счетчика обычно выходит за границу диапазона. Не полагайтесь на него после цикла.

  • Ожидание шага больше 1 (например, через 2). Классический for всегда меняет счетчик на ±1. Для другого шага используйте while.

Цикл while — когда не знаете, сколько раз повторять

Теперь другая ситуация. Пользователь должен угадать положительное число. Сколько попыток ему потребуется — неизвестно. Может, десять, сорок, сто. А может, он с первого раза введет правильное число и цикл вообще не понадобится. Именно для таких случаев существует while.

while — это цикл с предусловием. Он проверяет условие перед каждым шагом. Если условие истинно — выполняет тело. Потом снова проверяет. И так по кругу, пока условие не станет ложным. Как только стало ложным — останавливается.

Ключевое отличие от for: если условие ложно с самого начала, тело не выполнится ни разу.

Синтаксис цикла while
Синтаксис цикла while
 Пример: накопление суммы чисел, пока значение не превысит 100
Пример: накопление суммы чисел, пока значение не превысит 100

Типичные ошибки

  • Не инициализировать переменную условия перед циклом. Переменная в условии обязательно должна иметь значение до входа в цикл. Иначе вы получите непредсказуемое поведение (выполнение может сразу завершиться или войти в бесконечный цикл).

  • Не изменять переменную условия внутри тела цикла — цикл никогда не остановится.

  • Неправильное условие («<» вместо «<=» или «>» вместо «>=»). Цикл выполнится на одну итерацию меньше/больше (ошибка off-by-one). Чтобы этого не произошло, внимательно проверяйте граничные значения.

  • Использование «=» вместо «:=» в условии — ошибка компиляции. В условии можно только сравнивать, но не присваивать.

Цикл repeat..until — когда первый шаг обязателен

Программа показывает меню и спрашивает, что сделать. Спросить нужно обязательно — хотя бы раз. Нет смысла проверять условие до того, как пользователь вообще что-то увидел. Сначала — показать, потом — проверить ответ. Это логика repeat..until.

repeat..until — цикл с постусловием. Сначала выполняется тело, а только потом проверяется условие.

Здесь важно не перепутать логику условия. В while условие — это условие продолжения: пока оно истинно — работаем. В repeat..until условие — это условие выхода: как только оно стало истинным — останавливаемся. Это инверсия, и именно она сбивает с толку чаще всего.

repeat гарантирует выполнение тела хотя бы один раз
repeat гарантирует выполнение тела хотя бы один раз

Типичные ошибки

  • Написать условие продолжения вместо условия выхода. Цикл либо сразу завершается, либо становится бесконечным. Помните: until — это «пока не». Условие должно описывать момент выхода из цикла, а не продолжения.

  • Не изменять переменную, участвующую в условии. Как и в while, переменная в условии обязательно должна меняться внутри тела, иначе вы получите бесконечный цикл.

  • Использовать repeat, когда возможно нулевое количество итераций (тело цикла выполнится лишний раз). Если по логике задачи тело может не выполниться ни разу, лучше использовать while.

Сравнение циклов for, while, repeat

Характеристика

for

while

repeat…until

Проверка условия

Перед каждой итерацией

Перед каждой итерацией

После каждой итерации

Минимум итераций

0 (если начало > конец)

0

1

Счетчик / шаг

Автоматический (±1)

Вручную (любой шаг)

Вручную (любой шаг)

Что означает условие

Граница диапазона

Условие продолжения цикла

Условие выхода из цикла

Когда лучше использовать

Когда точно известно количество повторений

Когда итераций может быть 0 и нужно проверить условие перед входом

Когда первая итерация обязательна (например, ввод данных)

Особенности и риски

Нельзя менять счетчик внутри цикла

Опасность бесконечного цикла, если забыть изменить переменную

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

Если вы хотите не только разобраться с теорией, но и сразу применить знания на практике под руководством преподавателя, обратите внимание на курс «Разработчик программного обеспечения» или «Разработка на Python» в Академии ТОП — там базовое понимание циклов и алгоритмическое мышление помогут быстрее и проще освоить новые навыки и усилить компетенции.

Вложенные циклы

Вложенный цикл — это цикл, который находится внутри другого цикла.

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

Классический пример вложенного цикла — таблица умножения
Классический пример вложенного цикла — таблица умножения

Важно: каждый цикл должен иметь свое уникальное имя переменной-счетчика. Чем глубже вложенность, тем сложнее понимать и отлаживать программу. Поэтому, как правило, не используют больше 2–3 уровней.

Управление циклами: break и continue

В Паскале есть два важных оператора, которые позволяют более гибко контролировать выполнение циклов:

  • break — немедленно прерывает выполнение и переводит код на следующую инструкцию после цикла;

  • continue — пропускает оставшуюся часть тела текущей итерации и сразу переходит к следующей итерации.

Мы собрали подборку курсов для людей с разным уровнем подготовки

Хотите стать программистом?

Мы собрали подборку курсов для людей с разным уровнем подготовкиПерейти

Частые вопросы

Можно ли всегда обойтись одним циклом — например, только while?

Технически — да, while можно эмулировать что угодно. Практически — это как писать все в одну строку: работает, но читать невозможно. Правильный выбор цикла — залог чистоты кода.

Зачем учить Паскаль в 2026 году?

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

Что делать, если цикл работает неправильно или бесконечно?

Добавьте временный вывод значений переменных внутри цикла (writeln) и проверьте, как меняется условие.

В каких ИТ-сферах нужно знать циклы?

Буквально во всех: разработка, олимпиадное программирование, встраиваемые системы, робототехника, автоматизация, аналитика, преподавание информатики и т. д.

Базовый минимум по Паскалю можно найти в этой статье.

А если вы собираетесь сдавать ОГЭ или ЕГЭ по информатике, прочитайте наш материал, чтобы составить план подготовки и сдать на высокий балл.

Сколько стоит войти в ИТ в 2026 году: все форматы обучения от вуза до курсов и и их стоимость.

Циклы — основа любого нетривиального алгоритма. Сортировка массива — это вложенные for. Поиск элемента — это while. Обработка пользовательского ввода — это repeat..until. Без понимания этих трех конструкций не получится развиваться в программировании. Поэтому во многих курсах по программированию Академии ТОП циклам отведен отдельный блок.

Хотите лучше разобраться в вопросе?

Приходите на бесплатное занятие в вашем городе и получите ответы от практикующих экспертов

Нажимая на кнопку, я соглашаюсь на обработку персональных данных

Мы свяжемся с вами в течение дня

💫

Перезвоним и поможем подобрать курс

👍

Запишем на бесплатные пробные занятия

💯

После рассчитаем финальную стоимость с учетом возможных льгот, текущих скидок и выбранного пакета