break and return in ruby, how do you use them?
Return exits from the entire function.
Break exits from the innermost loop.
Thus, in a function like so:
def testing(target, method) (0..100).each do |x| (0..100).each do |y| puts x*y if x*y == target break if method == "break" return if method == "return" end end endend
To see the difference, try:
testing(50, "break")testing(50, "return")
I wanted to edit the approved answer to simplify the example, but my edit was rejected with suggestion of making new answer. So this is my simplified version:
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 endend
we can see the difference trying:
testing(3, "break")testing(3, "return")
Results of first (break
statement exiting innermost loop only when 3
reached):
1232463
Results of last (return
statement exiting whole function):
123