2014-09-20 115 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