2014-09-20 104 views
1

我試圖輸出組數字看起來像這樣:在另一次迭代內迭代?

0,0 
0,1 
0,2 
0,3 
0,4 
0,5 
. 
. 
. 
1,0 
1,1 
1,2 
1,3 
1,4 
1,5 
. 
. 
. 

我無法遍歷第二列,而從0在移動1前離開的第一列同樣爲十次迭代第一列。

我想:

(0..9).each do |num| 
    number = num 
    number_plus = num 
    puts "#{number}, #{number_plus}" 
    number_plus = num + 1 
    puts "#{number}, #{number_plus}" 
end 

其輸出這一點,更近但我仍然缺少相關的嵌套迭代器的東西:

0, 0 
0, 1 
1, 1 
1, 2 
2, 2 
2, 3 
3, 3 
3, 4 
4, 4 
4, 5 
5, 5 
5, 6 
6, 6 
6, 7 
7, 7 
7, 8 
8, 8 
8, 9 
9, 9 
9, 10 

任何指導意見將是巨大的。

+0

'[* 0..9] .permutation(2)。每個{| A,B |把「#{a},#{b}」}' – Hauleth 2014-09-20 16:24:17

回答

1

把所述第一內部的第二次迭代是一種可能的解決方案:

(0..9).each do |num1| 
    (0..9).each do |num2| 
    puts "#{num1}, #{num2}" 
    end 
end 
+0

作品看起來很簡單,現在我看到了這個例子。謝謝! – mann 2014-09-20 13:43:06

+0

@sawa在這個迭代中,我如何反轉一組數字?做'(9..0).each'或'(0..9).reverse.each'似乎不是有效的方法來做到這一點? – mann 2014-09-20 14:09:15

+0

@mann轉換爲數組可以工作:'(0..2).to_a.reverse.each' – 2014-09-20 14:23:58