control_flow/jump_assignments_no_parens.rb

tests/_examples/control_flow/jump_assignments_no_parens.rb in the metorex repository.

# The value a `break`, `next` or `return` carries can be an assignment, and
# the variable keeps what was assigned.
found = nil
[3, 8, 12].each do |number|
  break found = number if number > 5
end
p found

doubled = [1, 2].map { |number| next twice = number * 2 }
p doubled

def first_even numbers
  numbers.each { |number| return @even = number if number.even? }
  nil
end
p first_even [1, 4, 6]
p @even

Output:

8
[2, 4]
4
4