Очень часто в программировании нужно построить такую конструкцию: есть массив, нужно проверить каждый элемент массива на соответствие какому нибудь условию, если соответствует то что нибудь выполнить и прервать цикл, если не найдено ни одного соответствия то сделать, что нибудь другое. Обычно это решалось так:
#!/usr/bin/ruby
#coding: utf-8
arr = [1,2,3,4,5]
key = true
arr.each do |a|
if a == 4
puts a
key = false
break
end
end
if key
puts 'цикл завершился, нет соответствий'
else
puts 'цикл прервался, найдено соответствие условию'
end
test = for i in 1..5; end
puts test.inspect
> 1..5
test = arr.each { |a| }
puts test.inspect
> [1, 2, 3, 4, 5]
#!/usr/bin/ruby
#coding: utf-8
arr = [1,2,3,4,5]
key = arr.each do |a|
if a == 4
puts a
break
end
end ? true : false
if key
puts 'цикл завершился'
else
puts 'цикл прервался, найдено соответствие условию'
end
UPD: точнее наверно сказать, что это фича не циклов, а итераторов