Зачем нужны циклы в программировании
easy

Зачем нужны циклы в программировании

Учим компьютер делать без устали одно и то же

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

Что такое цикл

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

Допустим, мы днём решили помыть посуду, которая накопилась у раковины. Если разбить этот процесс на шаги и немного упростить, всё будет выглядеть примерно так:

  1. Включаем воду.
  2. Намыливаем губку для мытья.
  3. Берём первый прибор (посуду) из немытого.
  4. Намыливаем и чистим.
  5. Смываем воду.
  6. Ставим прибор на сушилку.
  7. Берём второй прибор из немытого.
  8. Намыливаем и чистим.
  9. Смываем воду.
  10. Ставим на сушилку.
  11. Берём третий прибор…

Смотрите, что тут происходит: мы сначала сделали подготовительные действия, а потом раз за разом делаем одно и то же — меняется только посуда, которую мы моем. Если перевести это на язык компьютера, то будет как-то так:

  1. Настраиваем всё, что нужно для мойки посуды.
  2. Складываем всю грязную посуду слева от раковины.
  3. Если слева от раковины есть ещё немытая посуда — берём оттуда одну вещь, моем и ставим сушиться, потом возвращаемся к п. 3. 
  4. Если слева от раковины больше нет немытой посуды — вытираем руки и выключаем воду.

Ключевой момент тут находится в третьем пункте, когда в конце мы добавляем, что снова возвращаемся к началу этой части. Именно здесь и рождается цикл: пока есть посуда, моем её по очереди, прибор за прибором. 

Что нужно для организации цикла

Чтобы сделать цикл, нужны два компонента: условие и тело цикла.

Условие — это то, что проверяется до начала цикла, а потом постоянно проверяется во время работы цикла. Есть несколько вариантов организации цикла, но в привычном виде правило выглядит так: пока условие выполняется — выполняем, что написано в цикле, и возвращаемся проверять условие заново. И так делаем до тех пор, пока условие не станет ложным. Мы уже разбирали условие отдельно — почитайте, если кажется, что всё сложно.

Главное правило с условием: то, что происходит внутри цикла, должно как-то влиять в итоге на условие, чтобы цикл когда-нибудь закончился. Например, в нашем примере с посудой условием цикла является вопрос: «А есть ли ещё немытая посуда в левой части?» Внутри цикла мы постепенно уменьшаем количество этой посуды, в итоге ответ на изначальный вопрос станет отрицательным, и цикл перестанет выполняться.

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

Зачем нужны циклы в программировании

Если что — циклы ещё можно сделать без специальных команд цикла, но это уже развлечение для тех, кто шарит.

Какие бывают циклы

Чаще всего в большинстве языков программирования можно встретить три вида циклов:

  1. Цикл с известным числом повторений.
  2. Цикл с предусловием (сначала условие, потом тело цикла).
  3. Цикл с постусловием (сначала тело цикла, потом условие).

Программисты выбирают конкретный вид цикла в зависимости от задачи, которую нужно решить. Но вообще при желании можно взять любой из циклов и превратить его в другой — этим займёмся в следующий раз.

Где применяются циклы

Сила циклов — в повторении одного и того же столько раз, сколько это нужно. Например, нам нужно обработать файлы с входящими заявками на конкурс. Можно это делать вручную, а можно один раз объяснить компьютеру в коде, что нужно сделать с письмом, а потом обернуть всё это в цикл. В итоге получится, что нам неважно, сколько у нас будет неразобранных писем — программа справится с любым количеством. Но самое главное — мы пишем логику обработки только один раз, а дальше она повторяется и применяется к другим письмам.

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

  • сортировки,
  • поиска,
  • хеширования,
  • шифрования,
  • обработки строк и так далее.

👉 Если нужно что-то повторить какое-то количество раз — используют циклы.

А есть бесконечные циклы?

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

Иногда такие циклы делают специально, например чтобы движок простой игры постоянно отрисовывал кадры анимации и отрабатывал нажатия на клавиши. 

Можно ли принудительно выйти из цикла?

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

Что дальше

В следующих частях разберём три классических вида цикла: с известным числом повторений, цикл с предусловием и цикл с постусловием. С картинками, примерами кода и объяснениями. Подпишитесь, чтобы не пропустить продолжение.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Климентьева

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy