How can I return something early from a block? How can I return something early from a block? ruby ruby

How can I return something early from a block?


next inside a block returns from the block. break inside a block returns from the function that yielded to the block. For each this means that break exits the loop and next jumps to the next iteration of the loop (thus the names). You can return values with next value and break value.


#!/usr/bin/rubycollection = [1, 2, 3, 4, 5 ]stopped_at = collection.each do |i|   break i if i == 3   puts "Processed #{i}"endputs "Stopped at and did not process #{stopped_at}"


In this instance, you can use break to terminate the loop early:

collection.each do |i|  break if i == 3  ...many linesend

...of course, this is assuming that you're not actually looking to return a value, just break out of the block.