Курси програмування для дітей безкоштовно

09. Next та Break в циклах у Ruby

Запис у файл з Ruby | Ruby для дітей | ITisFuture

У цьому уроці ви дізнаєтесь, як команди next та break в циклах у Ruby дозволяють пропускати кроки циклу або зупиняти його в потрібний момент, щоб керувати виконанням коду як профі.

Ми відкриваємо Макдональдс! Але поки що тільки в наших програмах…

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

Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture

Break and next

Оператори керування циклом у ruby:

break — перериває виконання циклу;

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

Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture

Коли ми пишемо 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 | Ruby для дітей | ITisFuture

Практика. 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 символи.

Мем Жарт про ІТ та програмістів | Ruby для дітей | ITisFuture

6: Вже кипить мозок ? Ось вам приклад зі смайликами, допишіть його, вставивши вірні цифри. В рядку і стовпчику має бути по 20 смайлів. Цикл рахує від 0 до 20 відповідно. Якщо номер стовпчика j ділиться на 4, то виводиться донат. Інакше – піца.

n=❤️
m=❤️
for i in ❤️..n
    print "\n"
    for j in ❤️..m
      (j%❤️==0)?(print "🍩"):(print "🍭")
    end
end
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture

7: Зробіть схожі цикли з іншою умовою. В рядку і стовпчику має бути по 15 смайлів. Якщо j ділиться на 5, то виводиться 🐳, якщо ні – 🐯 (смайли можна замінити).

Мем Жарт про ІТ та програмістів | Ruby для дітей | ITisFuture
Уроки програмування для дітей. Домашня робота

Домашня робота

1: Ця програма виводить числа від 0 до 1000 у двійковій системі. Зупиніть цикл на числі 10 (у двійковій 1010), не змінюючи умову в першому рядку. Використайте команду next або break в цьому завданні

for i in 1..1000
    puts i.to_s(2)
end

2: Власний бізнес. Уявімо, що ви відкриваєте власний магазин або кафе.
💲Створіть словник з мінімум 7 товарів (назва товару:ціна)
💲Виведіть лише ті товари, які коштують від 500 до 1000 грн
💲У вашому магазині пройшла акція. Всі товари, крім одного на ваш вибір, стали коштувати на 15 грн дешевше. Виведіть нові ціни на всі товари.
Використайте команду next або break в цьому завданні.

Мем Жарт про ІТ та програмістів | Ruby для дітей | ITisFuture

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 
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture
Уроки програмування для дітей ускладнені завдання level up

Level Up!
Next та Break в циклах у Ruby

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

A:

B:

С:

D:

E:

Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture
Next та Break в циклах у Ruby | Ruby для дітей | ITisFuture

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

Мем Жарт про ІТ та програмістів | Ruby для дітей | ITisFuture
Мем Жарт про ІТ та програмістів | Ruby для дітей | ITisFuture

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

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *