我刚刚问了question关于回归的事情,它似乎和休息一样。如何使用return,以及如何使用break,例如在您编写的实际代码中解决可以使用这些结构的问题。
我无法发布示例,因为我不知道如何使用它们,所以它们没有多大意义。
答案 0 :(得分:71)
返回整个功能的退出。
从最里面的循环中断出口。
因此,在这样的函数中:
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
end
end
要查看差异,请尝试:
testing(50, "break")
testing(50, "return")
答案 1 :(得分:4)
从循环内部调用break。它会让你在你所在的最里面的循环之后。
从方法中调用return。它将返回您告诉它的值,并在您调用它之后立即将其放置。
答案 2 :(得分:1)
我想编辑已批准的答案以简化示例,但我的编辑被拒绝并提出了新的答案。所以这是我的简化版本:
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
答案 3 :(得分:0)
One more example could be if you have two loops in a single method and if you want to come out of the first loop and continue to the second loop use break in the first loop or vice versa:
def testing(method)
x=1
10.times do
if(x == 2)
break if method == "break"
end
x+=1
end
10.times do
if(x == 5)
return if method == "return"
end
x+=1
end
end