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.
Ты читаешь как гость
Все бесплатные уроки открыты: читай и запускай. Бесплатный аккаунт отмечает пройденные уроки и показывает, где ты в курсе.