Integer#stepどうぞ

http://d.hatena.ne.jp/piyo2-moko/20080301#1204377183

stepメソッドをどうぞ。改行つき出力はputsで。

1.step(10,2){|m| puts m }
# >> 1
# >> 3
# >> 5
# >> 7
# >> 9
2.step(10,2){|p| puts p }
# >> 2
# >> 4
# >> 6
# >> 8
# >> 10

追記

はブロック引数。 ブロック付きメソッド呼び出し@Rubyリファレンスマニュアル
初期値.step(終値, 増やす値) {|現在の値| 処理 }

で初期値から終値まで値を増やしながら処理を行うけど、現在の値も使いたい。だから「|現在の値|」のようにブロック引数を使う。


さきほどの例はこんなふうにdo〜endを使って書くこともできるけど、こっちのほうがわかりやすいかな。

1.step(10,2) do |m|
  puts m
end
# >> 1
# >> 3
# >> 5
# >> 7
# >> 9

ループを書いたとき、頭の中では「1から10まで2ずつ増やしてその数を表示しよう」と考えていると思う。Rubyだと頭の中で考えていることをそのまま表現することができるという話。