ruby的redo和retry 回顾

ary=[1,2,3]
ary.each do |i|
    puts i
    i+=1
    redo if i==2
end
#输出:1 2 2 3 

redo做的动作是:条件满足,则以当前的条件重复一次{ block}的动作,当前的条件包括(当前的变量值)

 

ary=[1,2,3]
ary.each do |i|
    puts i
    i+=1
    retry if i==2
end
#输出:死循环 1 

   这里我们没有看到 i+=1,输出 2,说明,retry的重复动作包括从{block}外开始,包括i的值。

posted @ 2013-03-16 19:21  Anleb  阅读(1860)  评论(0编辑  收藏  举报