Все темы
4

Сделать для каждого: циклы

Бесплатно

1. Задача

Ты почтальон на улице с 40 почтовыми ящиками. Задача: положить в каждый ящик по листовке. Ты не пишешь себе 40 отдельных инструкций. Ты повторяешь одно и то же: «подойди к следующему ящику, брось листовку», пока ящики не кончатся.

Компьютеры созданы как раз для такой работы. Лучше всего они умеют повторять один и тот же маленький шаг для множества вещей. Они не устают и не сбиваются на 37-м ящике.

2. Повторить для каждого элемента

Цикл говорит: «для каждой коробки в списке сделай этот шаг». Ты пишешь шаг один раз. Компьютер выполняет его на каждой позиции, по порядку.

✉ ✉ ✉ ✉ один шаг, коробка за коробкой

Словами: «для каждого x в списке: брось листовку». Здесь x это имя текущей коробки, до которой дошёл цикл. Четыре коробки, четыре листовки и одна записанная инструкция.

3. Счётчик

Часто цикл хранит маленькое число, которое показывает, где он сейчас: 0, потом 1, потом 2 и так далее. Этот счётчик тоже переменная, то есть коробка с наклейкой. С каждым кругом он растёт на единицу. По счётчику цикл знает, на какой он позиции и когда пора остановиться. Последняя позиция на единицу меньше длины списка (это было в уроке про списки). Для списка из 4 коробок счётчик проходит 0, 1, 2, 3. Когда он становится равен 4, то есть длине списка, коробки кончились, и цикл останавливается.

4. Твоя очередь (без кода)

Цикл идёт по списку [4, 1, 7] и хранит коробку total. В начале в ней лежит 0. На каждом шаге цикл прибавляет к total текущее число. Что окажется в total в конце?

Ответ: 12. По шагам: в начале 0, после первого числа 0 + 4 = 4, после второго 4 + 1 = 5, после третьего 5 + 7 = 12. Цикл и одна коробка-накопитель: этого хватает, чтобы сложить весь список. Такую схему ты будешь писать постоянно.

5. Главное

Цикл выполняет один шаг для каждого элемента, по порядку, и следит за своим местом с помощью счётчика. Ты пишешь шаг один раз, а компьютер повторяет его хоть миллион раз. Это самая частая идея во всём программировании.

На LeetCode

Кода пока нет, поэтому и сдавать на LeetCode нечего. Цикл с накопительной суммой из этого урока целиком решает Running Sum of 1d Array и Richest Customer Wealth, а писать циклы в коде ты начнёшь с урока 7.

Ты читаешь как гость

Все бесплатные уроки открыты: читай и запускай. Бесплатный аккаунт отмечает пройденные уроки и показывает, где ты в курсе.

Мы используем необходимые куки для работы сайта (вход и язык). Если ты согласишься, мы также загрузим Google Analytics, чтобы видеть, какие страницы читают, и Google reCAPTCHA для защиты форм обратной связи и сообщений об ошибке от спама. Политика конфиденциальности