[Ruby] timesメソッドで処理を指定回数繰り返す
[Ruby] timesメソッドで処理を指定回数繰り返す
この記事の目的
プログラミングにおけるループ処理は、コード量の圧縮、可読性の向上、保守性の向上など、メリットが多い重要な処理
だと思います。
そこで僕がRubyでよく使用するループ処理のtimesメソッド
について、復讐を兼ねてこの記事を作成しました。
参考になると嬉しいです!
timesメソッドの使用方法・使用例
では、timesメソッドの具体的な使用方法と使用例について解説していきます。
基本構文
do endブロックパターン
繰り返す回数.times do
# ここへ繰り返す処理を記述
end
{}ブロックパターン
繰り返す回数.times {
# ここへ繰り返す処理を記述
}
使用例
主に繰り返したい処理の回数が定まっている場合
に使用できます。
例えば「Hello World !」を10回する事が目的だとすると、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