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」から始まるってのは忘れてしあいがちなので注意が必要加茂です。