2012-05-29 182 views
5

我想從02循環@a0, 1, 2, 0, 1, 2通過陣列元素循環

def set_a 
    if @a == 2 
    @a = 0 
    else 
    @a = @a + 1 
    end 
end 

也許有更好的辦法嗎?

回答

18
(0..2).cycle(3) { |x| puts x } #=> 0,1,2,0,1,2,0,1,2 

item = [0, 1, 2].cycle.each 

item.next #=> 0 
item.next #=> 1 
item.next #=> 2 
item.next #=> 0 
... 
+1

如果OP不需要使用數組,則也可以是'(0..2).cycle'。另外'cycle'對於循環數量採用可選參數。 –

+0

不錯的提示,已更新 – megas

+0

您不需要每個循環都使用.next –