当たってる

Integer#stepどうぞ - http://rubikitch.com/に移転しましたの続き。

http://d.hatena.ne.jp/piyo2-moko/20080302#1204460806
ループの最初は図で当たってる。mは1, 3, 5, 7, 9と変化していく。
「print(m, "\n")」と「puts m」は同じなので、

m=1
while m<=10
  # ...
  m=m+2
end

1.step(10, 2) do |m|
  # ...
end

に置き換えたと考えればよい。いわば専用の制御構造。Rubyはこういう制御構造がたくさん用意されている。なぜかというと、読み書きが楽だから。
whileは原始的な制御構造で、コンピュータ寄り。stepメソッド等はプログラムを書いた人の意図がはっきりわかるので人間寄り。

あまり考えすぎずに、そういうものだと慣れてしまえばいいと思う。そして、そういう書き方を好きになれば、ガンガン上達する。