如何在红宝石中颠倒顺序

Joh*_*lly 1 ruby ruby-on-rails-3 ruby-on-rails-4

您如何在Ruby中编写一个代码段,以相反的顺序打印出1到200之间的3的每一个倍数?

这是我到目前为止的代码:

(1..200).each do | i | ##loop it then
  if i % 3 == 0
Run Code Online (Sandbox Code Playgroud)

Mr.*_*nce 5

您可能想要#select#reverse

puts (1..200).select { |i| i % 3 == 0 }.reverse
Run Code Online (Sandbox Code Playgroud)

  • OP只想打印元素。没有必要创建一个数组来做到这一点。 (2认同)

Jor*_*ing 5

打印从200到1的三的倍数的最简单方法是使用Integer#downto

200.downto(1) do |i|
  puts i if i % 3 == 0
end
Run Code Online (Sandbox Code Playgroud)

与其他答案不同,它不需要将范围转换为数组或创建和数组并将其反转。