web-dev-qa-db-ja.com

Ruby for for(i = index; i> = 0; i-)で負のループを書く方法

次のCスタイルのforループのように、カウントダウンするRubyでループをどのように書くことができますか?

for (i = 25; i >= 0; i--) { 
    print i;
}
38

Rubyでデクリメントループを実行するには多くの方法があります。

最初の方法:

for i in (10).downto(0)
  puts i
end

2番目の方法:

(10).downto(0) do |i|
  puts i
end

番目の方法:

i=10;
until i<0
  puts i
  i-=1
end
57
gsoni

一方通行:

25.downto(0) do |i|
  puts i
end
25
Mark Thomas

downtoで構いませんが、より一般的なstepもあります。

25.step(0, -1){|i| puts i}
18
steenslag

これを試して:

25.downto(0) { |i| puts i }
11
Bozhidar Batsov

すでに範囲で作業している場合に備えて:

rng = 0..6
rng.reverse_each { |i| p i }

編集-より簡潔に:

puts(rng.to_a.reverse)
3
seph

ここに簡単なものがあります:

(0..25).reverse_each { |i| print i }
2
edgerunner