1
2
3
4
5
6
|
ary=[
1
,
2
,
3
]
ary.
each
do
|i|
puts i
i+=
1
redo
if
i==
2
end
#输出:1 2 2 3
|
redo做的动作是:条件满足,则以当前的条件重复一次{ block}的动作,当前的条件包括(当前的变量值)
1
2
3
4
5
6
|
ary=[
1
,
2
,
3
]
ary.
each
do
|i|
puts i
i+=
1
retry
if
i==
2
end
#输出:死循环 1
|
这里我们没有看到 i+=1,输出 2,说明,retry的重复动作包括从{block}外开始,包括i的值。
转自:https://www.cnblogs.com/IAmBetter/archive/2013/03/16/2963673.html