📌

[Ruby] timesメソッドで処理を指定回数繰り返す

2023/10/16に公開

[Ruby] timesメソッドで処理を指定回数繰り返す

この記事の目的

プログラミングにおけるループ処理は、コード量の圧縮、可読性の向上、保守性の向上など、メリットが多い重要な処理だと思います。
そこで僕がRubyでよく使用するループ処理のtimesメソッドについて、復讐を兼ねてこの記事を作成しました。
参考になると嬉しいです!

timesメソッドの使用方法・使用例

では、timesメソッドの具体的な使用方法と使用例について解説していきます。

基本構文

do endブロックパターン

繰り返す回数.times do
  # ここへ繰り返す処理を記述
end

{}ブロックパターン

繰り返す回数.times {
  # ここへ繰り返す処理を記述
}

使用例

主に繰り返したい処理の回数が定まっている場合に使用できます。
例えば「Hello World !」を10回する事が目的だとすると、NGパターンは...

NGパターン
puts 'Hello World !' # 1回
puts 'Hello World !' # 2回
:
省略
:
puts 'Hello World !' # 10回

上記の様にputs 'Hello World !'を10回記述すれば目的自体は達成出来ますが、以下の場合は大変な作業になる事は想像できますよね。

  • 「Hello World !」を10回から100回に変更
  • 全ての「Hello World !」を「hello world !!」に変更

そこでtimesメソッドを使用すれば、圧倒的に記述量を減らす事ができ、変更も容易になります。

  • 「Hello World !」を10回表示
10.times do
 puts 'Hello World !'
end
  • 表示回数を100回に変更
100.times do # 繰り返し回数を変更するだけ
 puts 'Hello World !'
end
  • 全ての表示文字を「hello world !!」に変更
100.times do
 puts 'hello world !!' # この1行を変更するだけ
end

繰り返し回数を取得して連番表示してみよう

以下のようにtimesメソッドにブロックパラメーター(変数)を設定すると、繰り返し毎にブロックパラメーターへ0スタートの繰り返し回数が代入され、それを取得できます。

5.times do |ブロックパラメーター|
 puts ブロックパラメーター # ブロックパラメーターへ代入された繰り返し回数を表示
end
実行結果
0
1
2
3
4

使用例

繰り返し回数だけを表示させる機会は少ないでしょうが、これを応用すると連番を付ける事が出来るようになります。
例えば1~5の「Book」を連番で表示させる際は、以下のように記述できます。

5.times do |i|
 i += 1 # 以下解説1にて解説
 puts "Book-#{i}" # 以下解説2にて解説
end
実行結果
Book-1
Book-2
Book-3
Book-4
Book-5

プチ確認問題

問1

以下コードを実行した際、「hoge」は何回表示されるでしょう。

5.times do
 puts 'hoge'
end
問1回答

5回

問2

以下コードを実行した際、一番最後に表示される文字は何でしょう。

6.times do |index|
 puts "image-#{index}"
end
問2回答

image-5

問3

以下コードを実行した際、表示される数値は何でしょう。

total = 0
3.times do |i|
 i *= 2
 total += i * 100
end
puts total
問3回答

600

まとめ

  • timesメソッドは指定回数、繰り返し処理を実行できる
  • ブロックパラメーター(変数)を使用すると、繰り返した回数を取得できる
  • ブロックパラメーター(変数)を文字列に代入する事で、連番表示を実装できる

ここまで読んで頂きありがとうございました♪

比較的覚えやすいメソッドで、使いこなせると決めた回数分処理を実行させる事ができて割と便利です。
特に僕は、Ruby on Railsで使用するseed.rbファイルで指定数の連番初期データを作らせたい時には重宝してます!

皆さんも是非timesメソッドを覚えてみて下さい。

参考サイト

Discussion