1 から 100 迄出力する Ruby コードいろいろ

1.upto(100) { |n| puts n }  # -- (1)
(1..100).step { |n| puts n }  # -- (2)
(1..100).to_a.each { |n| puts n }  # -- (3)
100.times { |n| puts n + 1 }  # -- (4)
n = 1
loop do
  break if n > 100
  puts n
  n += 1
end  # -- (5)
for n in 1..100
  puts n
end  # -- (6)
n = 1
while n <= 100
  puts n
  n += 1
end  # -- (7)
n = 1
until n > 100
  puts n
  n += 1
end  # -- (8)

他にもあるだろうけど、ちょっとばっかし考えた中では 8 つあった。
1..5 まではブロックを受け取るメソッドを、6.. からは制御構文を使ったものだ。
# loop も制御構文の 1 つだと思ってた私が通りますよ。
## ただのグローバルメソッドなのかな?

1. Integer#upto

レシーバから引数まで、足し上げるそうな。
self を返すけど、変わってないのでちょっととほほ。
upto! とかもしあったら足し上げられたのが返ってくるのかな。

2. Range#step

Range オブジェクトの初めから最後までを引数おきに繰り返すそうな。
綺麗だし、わかりやすいのでよく使ってた。

3. Array#each

要素全てに対してブロックを評価するよ!
うん。
これだけは覚えてくれってくらいの便利メソッド。
半端無く使う。

4. Integer#times

self 回だけ繰り返すってさ。
これもよく使ってた。
注意して欲しいのが、0 から繰り返すってこと。

で、

5..8 の制御構文とよく見たら違うような気がするんだけどただ書いてないだけかもなのは
ぶっちゃけた話、全然使わないんだよね。