2

如何以 ruby​​sh 方式表达下一个 for 循环?

for (r = 1; r < R; r++) {
    for (i = 0; i < 4; i++) {
            #do something
            }
}

我想用优雅的 ruby​​ 语法来表达上面的代码。提前致谢。

4

5 回答 5

4
1.upto(R-1) { |r|
   4.times {|i| 
      # Do something
   }
}

红宝石小提琴

这是使用Integer'suptotimes方法。

于 2012-07-18T06:08:12.070 回答
1

默认情况下,我在 Ruby 中的写法是这样的:

for r in 1..(R-1) do
  for i in 0..3 do
    # Do something
  end
end

但更好的方法是利用@PedroNascimento 在他的回答中指出的范围功能,使用三个点而不是两个点,以便将最后一项留在范围之外:

for r in 1...R do
  for i in 0...4 do
    # Do something
  end
end

这既更好看,也更清楚地表达了代码的含义。

于 2012-07-18T06:10:31.377 回答
1

只是为了让事情更漂亮:范围也可以有三个点,不包括最后一个数字。因此,如果这样写,代码会表现得更紧密:

for r in 1...R do
  for i in 0...4 do
    # Do something
  end
end
于 2012-07-18T06:28:13.443 回答
0
    for r in 1..R-1
       for i on 0..3
          do something
       end
    end

在这里你可以找到更多关于 Ruby 的语法帮助。

于 2012-07-18T06:05:22.783 回答
0

只是另一个使用Range的答案。

r = 5 #
(1..r-1).each do|i|
  (1..3).each do |j|
       puts "i => #{i} , j => #{j}"
   end
end

这个版本的灵感来自@Pedro Nascimento 的回答。

r = 5 #
(1...r).each do|i|
  (1...3).each do |j|
       puts "i => #{i} , j => #{j}"
   end
end
于 2012-07-18T06:21:10.503 回答