times文を用いた繰り返し処理(Ruby)

sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10

 上記のプログラムがあります。しかしこれを繰り返し処理を用いて書き換える場合、どのような記述になるでしょうか。それでは早速プログラムを見ていきます。

sum = 0
10.times do |i|
 sum = sum + i + 1
end
puts sum

上記のプログラムではtimesメソッドを用いています。

数値.times do
 # 繰り返す処理
end

数値の部分にdoからendの間にある繰り返したい希望の処理の回数を記述するとその回数分処理を行ってくれます。目的のプログラムでは数値の部分が10となっているため、10回分の以下の処理を行います。

sum = sum + i + 1

上記のiの部分はブロック変数です。目的のプログラムでは、10.times do |i|とdo以降にブロック変数iを定義し、doからendまでの間の処理で使用しています。予め変数sumを用意して、繰り返しの回数によって変化する数値を保存し、timesメソッドの処理が終了し最終の変数の値を最後に出力しています。
 詳細を見ていくと、繰り返し処理の数値は0から始まるので、1回目の繰り返しではブロック変数iの値は0です。そのため、sum = 0 + 0 + 1と認識することが出来ます。

sum = 0 + 0 + 1  # 1回目の繰り返し
sum = 1 + 1 + 1  # 2回目の繰り返し
sum = 3 + 2 + 1  # 3回目の繰り返し
(以下略)

以上の処理を合計10回繰り返し、その最終の値が出力されます。

この記事が気に入ったらサポートをしてみませんか?