[Ruby]timesメソッドとupto/downtoメソッド

0
219
views

一定の回数を繰り返すメソッドがIntegerクラスに用意されています。timesメソッド、uptoメソッドdowntoメソッドです。

Integer#times

timesメソッドで処理を繰り返すには、処理を do ~ end ブロックで囲みます。

3.times do
  p "Go"
end
"Go"
"Go"
"Go"

ブロックは波カッコ(ブレイス)を使うこともできます。

3.times {
  p "Go"
}

ブロックに変数を渡す

ブロックに変数を渡すと、変数が0から数字の回数分だけカウントアップされます。3.times なら 0 ~ 2 まで3回繰り返されます。

3.times do |count|
  p "Go to #{count}"
end
"Go to 0"
"Go to 1"
"Go to 2"

Integer#upto

timesの場合は0始まりでしたが、同じくIntegerクラスの upto メソッドはカウントの始まりと終わりを指定できます。

1.upto(3) do |count_up|
  p "#{count_up}回目"
end
"1回目"
"2回目"
"3回目"

Integer#downto

uptoメソッドとは反対に、1つずつ減らしてカウントダウンするには downto メソッドを使います。

5.downto(0) do |count_down|
  print("#{count_down}, ")
end
5, 4, 3, 2, 1, 0,