Я хотел отредактировать утвержденный ответ, чтобы упростить пример, но мое редактирование было отклонено с предложением сделать новый ответ. Так что это моя упрощенная версия:
def testing(target, method)
(1..3).each do |x|
(1..3).each do |y|
print x*y
if x*y == target
break if method == "break"
return if method == "return"
end
end
end
end
мы можем увидеть разницу, пытаясь:
testing(3, "break")
testing(3, "return")
Результаты первого (break
оператор выходит из внутреннего цикла, только когда достигнуто 3
):
1232463
Результаты последнего (return
оператор выходит из всей функции):
123