Rubyで同じことをシンプルに数回繰り返す。

5回同じことを繰り返す

5.times do
p "hello, World"
end
#「.times」メソッドはIntegerクラスが持っているメソッド

表示したいことがシンプルなら1行で記述したほうが見やすいかもしれない。

5.times { p "Hello, World!" }

ブロック引数を取得して利用する。

オプションというか「.times」メソッドの定義で、数字を取得することができる。
ブロック引数に「|i|」を指定すれば、iに数字が代入される。
数字は0から始まり指定した回数、繰り返される。
下記の例では、0から2まで表示される。

3.times { |i| p i }

結果
0
1
2

いまは「へぇーそういうもんなんだな」って理解するしかないと思っている。意図があって作る人がいるので、自分も使うタイミングがきっとくると思う。

timesメソッドで必ず紹介される、uptoメソッドとdowntoメソッド

任意の範囲で数字をカウントアップさせる。

3から10までカウントアップさせます。また8回繰り返します。

3.upto(10) { |i| p i }

ブロック引数がなくても機能します。その場合は単純に8回繰り返します。

3.upto(10) { p "Hello, World!" }

しかし、これだとuptoメソッドを使う意味がない気がします。

アップがあるならダウンも当然ある

8.downto(3) { |i| p i }

6回繰り返します。

結果
8
7
6
5
4
3

余談

・「do~end」のほうがshiftキー押す回数少ないからラクかも。

10.times do |i|
puts i
end

・「ブロック引数」は「ブロックパラメーター」とも言うらしい。

・timesメソッドのカウントが「0」から始まるってのは忘れてしあいがちなので注意が必要加茂です。