Какие виды циклов есть в Ruby? (loop, while, until, for, each, times, upto)
Вопрос проверяет знание различных типов циклов и их применение для итерации в Ruby.
Короткий ответ
В Ruby есть несколько видов циклов: loop для бесконечных итераций, while и until для выполнения до выполнения условия, for для итерации по коллекциям, а также методы each, times и upto для работы с коллекциями и числами.
Длинный ответ
Циклы в Ruby предоставляют гибкость в итерации по данным:
loop:
Выполняет блок кода бесконечно, пока не вызван break.
i = 0
loop do
puts i
i += 1
break if i > 5
end
while:
Выполняет блок, пока условие истинно.
i = 0
while i < 5
puts i
i += 1
end
until:
Выполняет блок, пока условие ложно.
i = 0
until i > 5
puts i
i += 1
end
for:
Используется для итерации по коллекциям.
for i in 1..5
puts i
end
each:
Метод итерации, доступный для массивов, хэшей и других коллекций.
[1, 2, 3].each { |num| puts num }
times:
Повторяет блок указанное количество раз.
5.times { |i| puts i }
upto:
Итерация от начального числа до конечного.
1.upto(5) { |i| puts i }
Каждый цикл имеет своё применение: например, each используется для работы с коллекциями, а times и upto — для числовых последовательностей.