Ах, цикл for – это как тот самый друг, который всегда готов повторить шутку, если она действительно хороша. Только в программировании этот друг не утомляет, а наоборот – делает жизнь проще и веселее!
Представьте: вы хотите напечатать числа от 1 до 10. Можно, конечно, вручную набрать print(1), print(2) и так далее, но зачем мучиться? Вот тут и приходит на помощь наш герой – цикл for! Он как бариста в кофейне: один раз настроился и каждый раз подает вам ваш любимый напиток без лишних вопросов.
Начинаем с простого: for i = 1, 10 do print(i) end.
Что происходит? Программа говорит: «Давай-ка я тебе покажу числа от 1 до 10!» И выводит их аккуратной колонкой. Только вот маленький подвох – если вы запускаете такой код в Roblox Studio или Lua-консоли, увидите числа от 1 до 10… ну почти. Иногда кажется, что цифры играют в прятки и забывают дойти до последних двух.
Но не переживайте, это не баг, а фича!
Теперь давайте усложним задачу. Меняем первую строчку на for i = 1, 10, 2 do – добавляем шаг! Это как идти по лестнице прыжками через одну ступеньку.
Результат? Вы получаете только нечетные числа: 1,3,5… Почему? Потому что мы сказали циклу «Шагай по два» – он послушно выполняет приказ и пропускает половину чисел.
Это напоминает мне старую шутку про программиста: «Почему ты идешь по лестнице прыжками?» — «Потому что мой цикл for так запрограммирован!»
А теперь представьте обратный ход событий: for i = 100, 0, -25 do. Тут наш цикл решил прогуляться назад – словно турист на обратном пути с горы вниз.
Он выводит числа с шагом минус двадцать пять: 100,75,50… и так до нуля. В программировании отрицательный шаг — это как реверс на машине времени для цикла.
Но стоп! Мы ведь можем использовать не только целые числа!
Например: for i = 0,1,0.2 do — тут у нас дробные шаги. Цикл считает аккуратно с дробями: 0;0.2;0.4;… Как будто кто-то делит торт на ровные кусочки и раздает всем друзьям поровну.
Если бы программисты были поварами, то переменная управления (i), начальное значение (например i=100), конечное значение (i=0) и шаг (-25) были бы рецептами для идеального блюда «Цикл на все случаи жизни». Каждый раз мы говорим циклу: стартуй здесь (начало), двигайся туда (конец) с таким-то темпом (шаг).
Хочу рассказать забавный случай из жизни одного новичка-программиста в Roblox Studio. Он написал скрипт:
for x = 1,100 do
A = Instance.new(«Part», workspace)
wait(0.1)
end
и запустил его… Вдруг из-под ног начали валиться детали одна за другой!
Это был настоящий дождь из кубиков! Сначала он подумал — может это новый способ вызвать ливень? Но нет — просто сотня повторений цикла породила сотню деталей! Мораль истории — цикл for любит порядок и количество повторов строго равно количеству созданных объектов.
Чтобы избежать хаоса в комнате из кубиков-деталек решили добавить порядок:
for x = 1,100 do
A = Instance.new(«Part», workspace)
A.Position = Vector3.new(x,0,0)
end
Но опять веселье — детали выстроились в линию вдоль оси X словно солдаты на параде!
Тогда наш герой решил сделать паузу между появлениями деталей и добавил шаг в параметры цикла:
for x = 1,100,5 do
A = Instance.new(«Part», workspace)
A.Anchored = true
A.Position = Vector3.new(x ,0 ,0 )
end
Теперь детали стояли крепко на месте с интервалами по пять единиц — ни один кубик не сбежал!
А чтобы добавить красок жизни (даже виртуальной), сменили координату Y тоже на x и сделали цвета рандомными:…