У цьому уроці ви дізнаєтесь, як команди next та break в циклах у Ruby дозволяють пропускати кроки циклу або зупиняти його в потрібний момент, щоб керувати виконанням коду як профі.
Ми відкриваємо Макдональдс! Але поки що тільки в наших програмах…
Сьогодні у нас багато планів: попрацюємо зі словниками, дізнаємося про next та break, які є незамінними в циклах, а ще взірвемо собі мозок з двомірними, або вкладеними масивами. Поїхали!

Break and next
Оператори керування циклом у ruby:
break — перериває виконання циклу;
next — перериває виконання поточного кроку (ітерації) циклу з переходом до наступного кроку;

Коли ми пишемо break, програма, прочитавши це слово, відразу завершить цикл і перейде до команд, які знаходяться після нього.
Коли ми пишемо next, програма, прочитавши це слово, піде на умову перевіряти нове число не виконуючи команди в циклі, які залишились.
Приклади з життя:
break → «все, стоп, закінчили»
🧩 Ви з молодшим братом складаєте будуєте вежу. І тут мама покликала вас обідати. Ви залишаєте вежу не завершеною і йдете їсти.
🚌 Ви їдете у маршрутці.
Побачили свою зупинку — виходите, навіть якщо маршрутка їде далі.
🎮 Ви граєте у гру. Раптом вимкнули світло. Гру продовжувати неможливо — ви зупиняєтеся повністю.
next → «це не цікаво / не підходить, йду далі»
🎧 Плейлист. Грає пісня, яка не подобається → натискаєте “далі”.
Музика не вимикається — просто інша пісня.
📱 Ви гортаєте TikTok. Бачите відео:
– якщо воно нудне → свайп далі
– якщо цікаве → дивитеся
Ви не виходите з TikTok, просто пропускаєте конкретне відео.
🏫 Контрольна. Учитель дав 10 задач.
Одну не розумієте → пропускаєте її й робите наступну.
Ось так це виглядає на прикладі:
break
for i in 1..8
if i==5 # коли будували 5й поверх, мама покликала
break
end
puts "Будуємо вежу: #{i} поверх"
end
puts "Все"next
for i in 1..7
if i==3 # третя пісня не подобається
next
end
puts "Грає пісня #{i}"
end
puts "Все"

Практика. Next та Break в циклах у Ruby
1: Роздивіться приклади з теорії. Створіть власні цикли з break та next на основі історій з життя (про маршрутку, TikTok, або ваш приклад)
2: А тепер відкриваємо власний McDonald’s !!! Почнемо з меню. Скопіюйте собі цей код:
menu = {
"Біг Мак🍔" => 69,
"Біг Тейсті🍔" => 109,
"Картопля Фрі Маленька🍟" => 27,
"Картопля Фрі Середня🍟" => 46,
"Картопля Фрі Велика🍟" => 56,
"Хеппі Міл 🎁" => 89,
"МакФлурі 🍿" => 80
}
Ум… Виглядає смачно. Такий вид списку називається словник. Тут ключ стоїть перед => , а після стоїть значення. Тому коли ми викликаємо список за ключем “Хеппі Міл 🎁” то можемо отримати його ціну (89 грн).
Але почнімо з простого. Виведіть меню на екран:
puts "============ Меню ============ "
for i in menu.keys
puts " #{i} Ціна: #{menu[i]} "
end
3: Тепер попрацюємо з замовленням. В змінну order запишемо замовлення однієї страви. Програма має знайти її ціну
puts "============ Замовлення ============ "
order="Біг Тейсті🍔"
Тут запускаємо цикл по ключам списку
puts "Страва #{i} "
if order==i
puts "З вас #{menu[i]} гривень"
Тут або break або next.Ми знайшли страву. Пошук треба зупинити
закриваємо умову
закриваємо цикл
Яка команда допомагає завершити цикл достроково, як тільки ми знайшли необхідний продукт ?
4: На наше меню підняли ціни. На всі продукти, крім картоплі ціни зросли на 5 гривень. Виведімо старі й нові ціни.
puts "============ Здороження ============ "
puts "Старі ціни : #{menu}"
Тут запускаємо цикл по ключам списку
if i.include?"Картопля"
Тут або break або next. На картоплю ціна не змінилася. Треба пропустити
закриваємо умову
menu[i]=збільшити ціну на 5 грн
закриваємо цикл
puts "Нові ціни : #{menu}"
Яка команда допомагає нам пропустити команди збільшення ціни для картоплі, а для інших підвищувати ціну?
Вкладені цикли
Цикли можна вкладати один в одній. Це дуже часто використовується. Наприклад, щоб в кінці навчального року перевести всіх в наступний клас, треба зайти в список класів, далі зайти в список учнів кожного класу і додати один до номера класу. Тобто Миколка Шевченко, який вчився у 2-му класі, почне вчитися в 3-му і так само всі його однокласники. Але для цього треба спочатку зайти в список першого класу і там всіх перевести у 2-й, далі відкрити список другого класу і перевести нашого Миколку разом з однокласниками в 3-й клас. І далі для всієї школи. Це досягається вкладеними циклами.
Звучить стрьомно? Та ви вже таке бачили. І де ? – В скретчі. Ось приклад:

5: Для першого прикладу виведемо всі числа від 1 до 100 у вигляді таблички по 10 чисел в рядку.

for i in 0..9
print "\n"
for j in 0..9
a=i*10+j
print "#{a}".center(4)
end
end Зверніть увагу, що :
і відповідає за стовпчик, а j – за рядок.
“\n” – це символ створення нового рядка
.center(4) допомагає красиво вивести наші числа. Число буде розташовано посередині і під кожне число буде виділено 4 символи.

6: Вже кипить мозок ? Ось вам приклад зі смайликами, допишіть його, вставивши вірні цифри. В рядку і стовпчику має бути по 20 смайлів. Цикл рахує від 0 до 20 відповідно. Якщо номер стовпчика j ділиться на 4, то виводиться донат. Інакше – піца.
n=❤️
m=❤️
for i in ❤️..n
print "\n"
for j in ❤️..m
(j%❤️==0)?(print "🍩"):(print "🍭")
end
end
7: Зробіть схожі цикли з іншою умовою. В рядку і стовпчику має бути по 15 смайлів. Якщо j ділиться на 5, то виводиться 🐳, якщо ні – 🐯 (смайли можна замінити).


Домашня робота
1: Ця програма виводить числа від 0 до 1000 у двійковій системі. Зупиніть цикл на числі 10 (у двійковій 1010), не змінюючи умову в першому рядку. Використайте команду next або break в цьому завданні
for i in 1..1000
puts i.to_s(2)
end2: Власний бізнес. Уявімо, що ви відкриваєте власний магазин або кафе.
💲Створіть словник з мінімум 7 товарів (назва товару:ціна)
💲Виведіть лише ті товари, які коштують від 500 до 1000 грн
💲У вашому магазині пройшла акція. Всі товари, крім одного на ваш вибір, стали коштувати на 15 грн дешевше. Виведіть нові ціни на всі товари.
Використайте команду next або break в цьому завданні.

3: Створіть словник зі словами англійською й іншою мовою (в прикладі іспанська). Програма має по черзі запитувати переклад кожного слова у юзера. Якщо той відповідає правильно – програма вітає. Якщо ні, то програма має сказати, як відповісти вірно.
vocab={ "Hello" => "Hola",
"Good morning" => "Buenos dias",
"Thank you" => "Gracias",
"Please" => "Por favor"
}
Translate to Spanish: Hello
Hola
Good job!
Translate to Spanish: Good morning
Buenos tardes
No, should be: Buenos dias
Translate to Spanish: Thank you
Gracias
Good job!
Translate to Spanish: Please
fddf
No, should be: Por favor
4: Роздивіться програму з вкладеними циклами, яка замість чисел, що діляться на 3 виводить смайлик. Поміняйте програму так, щоб:
💚 смайлик виводився для чисел, які діляться на 5
💚 числа виводились не до 100, а до 200
for i in 0..9
print "\n"
for j in 0..9
a=i*10+j
if a%3==0
print "🍟".center(4)
else
print "#{a}".center(4)
end
end
end 

Level Up!
Next та Break в циклах у Ruby
1: Не переписуючи код, спробуйте розібратися: якому коду (зліва) відповідає який малюнок (справа). Відповідь надішліть в форматі : А-1, B-2,…
Смайли в коментарі підказують, на який рядок слід звернути увагу
A:

B:

С:

D:

E:






2: Створіть 2 власних візерунки за допомогою вкладених циклів (смайлики можна взяти в телеграмі або використати ті, що є).


Не зупиняйтесь у вивченні Ruby! До зустрічі на наступних уроках!
