break and return in ruby, how do you use them? break and return in ruby, how do you use them? ruby ruby

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")


break is called from inside a loop. It will put you right after the innermost loop you are in.

return is called from within methods. It will return the value you tell it to and put you right after where it was called.


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