如何在ruby中写负循环,如(i = index; i> = 0; i - )

Man*_*ava 38 ruby loops

我是红宝石的新手.希望知道如何在ruby中编写以下循环.

for (i = 25; i >= 0; i--) { 
    print i;
}
Run Code Online (Sandbox Code Playgroud)

gso*_*oni 56

有许多方法可以在Ruby中执行递减循环:

第一种方式:

for i in (10).downto(0)
  puts i
end
Run Code Online (Sandbox Code Playgroud)

第二种方式:

(10).downto(0) do |i|
  puts i
end
Run Code Online (Sandbox Code Playgroud)

第三种方式:

i=10;
until i<0
  puts i
  i-=1
end
Run Code Online (Sandbox Code Playgroud)

  • 第一种方式包含无关的parens,并不是非常惯用.第二种方式还包含无关的parens,有一个不必要的'each',并且有不必要的引号和变量插值.第三种方式就是破碎. (3认同)

Mar*_*mas 25

单程:

25.downto(0) do |i|
  puts i
end
Run Code Online (Sandbox Code Playgroud)


ste*_*lag 18

downto很好,但也有更通用的step.

25.step(0, -1){|i| puts i}
Run Code Online (Sandbox Code Playgroud)


Boz*_*sov 11

试试这个:

25.downto(0) { |i| puts i }
Run Code Online (Sandbox Code Playgroud)