我剛剛問了一個question關於退貨,它似乎與break一樣。你如何使用return,以及如何使用break,例如在編寫的實際代碼中解決可以使用這些構造的問題。紅寶石破解和返回,你如何使用它們?
我真的不能發表例子,因爲我不知道如何使用這些,所以他們沒有太大的意義。
我剛剛問了一個question關於退貨,它似乎與break一樣。你如何使用return,以及如何使用break,例如在編寫的實際代碼中解決可以使用這些構造的問題。紅寶石破解和返回,你如何使用它們?
我真的不能發表例子,因爲我不知道如何使用這些,所以他們沒有太大的意義。
退出整個功能。
中斷退出最內層循環。
因此,在功能,像這樣:
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")
斷裂從循環中調用。它會將你置於最後的循環之後。
返回值是從方法內部調用的。它會返回你告訴它的值,並將它放在被調用的地方。
我想編輯已批准的答案以簡化示例,但我的編輯被拒絕,並提出了製作新答案的建議。所以這是我的簡化版本:
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
還有一個例子是,如果你有兩個循環的一個方法,如果你想出來的第一圈,並繼續第二循環利用突破在第一循環反之亦然:
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
可能重複的[如何從紅寶石塊爆發?](http://stackoverflow.com/questions/1402757/how-to-break-out-from-a-ruby-block) – 2012-08-15 21:34:25