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だと頭の中で考えていることをそのまま表現することができるという話。