Привет, друзья! Сегодня мы погрузимся в захватывающий мир циклов и итераций в Ruby. Эти мощные инструменты позволят вам автоматизировать повторяющиеся задачи и эффективно обрабатывать данные. Готовы? Поехали!
Предыдущий урок: Управляющие конструкции Ruby
Следующий урок: Методы в Ruby
Зачем нужны циклы в программировании?
Представьте, что вам нужно вывести на экран числа от 1 до 100. Без циклов вам пришлось бы написать 100 отдельных строк кода! С циклами же эту задачу можно решить всего в нескольких строках. Круто, правда?
Цикл for: простой и понятный
Начнем с самого простого – цикла for. Вот как он выглядит:
for i in 1..5
puts "Итерация #{i}"
end
Этот код выведет:
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Цикл while: пока условие истинно
Цикл while выполняется, пока условие остается истинным:
count = 0
while count < 5
puts "Счетчик: #{count}"
count += 1
end
Результат:
Счетчик: 0
Счетчик: 1
Счетчик: 2
Счетчик: 3
Счетчик: 4
Цикл until: пока условие ложно
Цикл until – это «перевернутый» while. Он выполняется, пока условие ложно:
count = 0
until count == 5
puts "Обратный отсчет: #{5 - count}"
count += 1
end
Вывод:
Обратный отсчет: 5
Обратный отсчет: 4
Обратный отсчет: 3
Обратный отсчет: 2
Обратный отсчет: 1
Итераторы: Ruby-way решения задач
Итераторы – это особенность Ruby, которая делает код более элегантным. Вот пример с использованием .each:
[1, 2, 3, 4, 5].each do |number|
puts "Число: #{number}"
end
Результат:
Число: 1
Число: 2
Число: 3
Число: 4
Число: 5
Практическое задание: Создаем игру-угадайку
Давайте применим наши знания на практике и создадим простую игру-угадайку:
secret_number = rand(1..100)
guess = 0
until guess == secret_number
print "Угадайте число (1-100): "
guess = gets.chomp.to_i
if guess < secret_number
puts "Слишком мало!"
elsif guess > secret_number
puts "Слишком много!"
else
puts "Поздравляю! Вы угадали число #{secret_number}!"
end
end
Этот код генерирует случайное число и предлагает пользователю угадать его. Цикл продолжается, пока пользователь не угадает число.
Заключение
Циклы и итераторы – это мощные инструменты в арсенале Ruby-разработчика. Они позволяют нам эффективно работать с данными и автоматизировать повторяющиеся задачи. Практикуйтесь в их использовании, и вы сможете писать более элегантный и эффективный код!
А какой из циклов вам понравился больше всего? Поделитесь своими мыслями в комментариях ниже!