Информатика, 6 классЦикл4 минуты чтения
Цикл
Компьютер силён тем, что не устаёт от однообразия. Повторить действие тысячу раз ему так же просто, как один. Такое повторение называют циклом.
6классТело и условие
У цикла две части. Тело это действия, которые повторяются, а условие решает, повторять ли снова.
Перед каждым оборотом машина проверяет условие. Пока оно истинно, тело выполняется ещё раз.
Как только условие стало ложным, цикл заканчивается, и алгоритм идёт дальше.
Поливаем грядку, пока земля сухая
Начало
Возьми лейку
- Земля ещё сухая?
даВылей лейку и вернись к проверке
нетПоставь лейку на место
Конец
Условие должно меняться
Внутри тела обязано происходить что-то, влияющее на условие. Иначе проверка будет давать один и тот же ответ вечно.
В примере с грядкой земля становится мокрой от полива. Значит, рано или поздно ответ станет «нет».
Если бы вода куда-то исчезала, цикл не кончился бы никогда.
Счётчик оборотов для страховки
Если есть подозрение, что цикл может зациклиться, в него добавляют ограничитель. Заводят счётчик и выходят, когда он превысил разумную границу.
Приём грубый, зато программа не зависнет намертво. Особенно он полезен там, где условие зависит от чужих данных: от файла, от сети, от пользователя.
Проверка до или после
Обычно условие проверяют перед телом. Тогда при ложном условии тело не выполнится ни разу, и это часто именно то, что нужно.
Бывает и наоборот: сначала выполняем, потом проверяем. Так поступают, когда действие нужно сделать хотя бы однажды.
Пример второго вида это ввод пароля: спросить нужно, а дальше уже смотреть, верен ли он.
Проверка сначала
Проверка потом
Тело может не выполниться
Тело выполнится хотя бы раз
Пока в мешке есть шары
Спрашивай пароль, пока не верный
Безопаснее
Удобнее для ввода
Выход из середины
Иногда выйти нужно не по основному условию. Нашёл нужную книгу на полке, и перебирать остальные незачем.
Для этого есть команда выхода. Она прерывает цикл сразу, не дожидаясь проверки.
Пользоваться ею стоит разумно. Три выхода из одного цикла делают алгоритм непонятным.
Вложенные циклы
Цикл внутри цикла даёт двойной перебор. Внешний идёт по строкам, внутренний по столбцам.
Так обходят таблицу, поле игры, каждую точку картинки. Число повторов при этом перемножается.
Если внешний делает десять оборотов, а внутренний сто, тело выполнится тысячу раз. Отсюда и осторожность: вложенные циклы легко делают программу медленной.
Сколько раз выполнится тело
повторов
Как остановить бесконечный цикл
Если программа зависла в цикле, её снимают средствами системы. В школьных средах для этого есть отдельная кнопка.
Причину ищут в теле: что должно было измениться и почему не изменилось. Часто виновата опечатка в имени величины.
Помогает и печать промежуточных значений. Видно, что число упрямо остаётся прежним.
Цикл и поиск
Классическая задача для цикла это поиск. Перебираем элементы по одному, пока не найдём нужный или не кончится список.
Здесь два условия выхода сразу: нашли или больше искать негде. Забыть второе значит получить бесконечный перебор пустого места.
Если список отсортирован, поиск делают умнее: каждый раз отбрасывают половину. Такой способ находит нужное в списке из миллиона за двадцать шагов.
Сколько работы делает цикл
Время работы программы обычно определяется циклами. Один проход по списку из тысячи элементов это тысяча действий.
Вложенный цикл превращает тысячу в миллион, и разница из незаметной становится мучительной.
Поэтому, прежде чем писать вложенный перебор, стоит подумать, нельзя ли обойтись одним проходом.
Циклы вокруг нас
Стиральная машина крутит барабан, пока не истечёт время. Светофор повторяет свой круг весь день.
Любая программа с экраном тоже работает циклом: ждёт нажатия, обрабатывает, рисует, снова ждёт.
Такой главный цикл крутится, пока ты не закроешь окно.
Про счётчик повторов читай урок «Цикл со счётчиком». Про первые повторы есть урок «Повторение».
Проверь себя: Цикл «пока число больше нуля, выводи его на экран». Число равно пяти и внутри цикла не меняется. Что произойдёт?
Цикл станет бесконечным: пятёрка всегда больше нуля. Внутри тела число нужно уменьшать, иначе условие никогда не станет ложным.
Короткие ответы
- Что такое тело цикла?
- Действия, которые повторяются. Всё, что стоит внутри цикла и выполняется на каждом обороте.
- Может ли цикл не выполниться ни разу?
- Может, если условие ложно с самого начала. Например, «пока в мешке есть шары» при пустом мешке.