問題
次の要件を満たすプログラムを実装しましょう。
・1~10の数値を順番に足し合わせる
・足し算の合計値がターミナルに出力される
しかし、以下のような順番に並べて、足し算しただけのプログラムはNGです。
sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
ループ処理を用いて実装しましょう。
💡ヒント💡
times文を用いることで、ループ処理を実装できます。
ループ処理とは、特定の条件下にて、任意の処理を繰り返すことでした。
今回の問題にループ処理を当てはめると、
0に1を足し、
その結果に2を足し、
その結果に3を足し、
その結果に4を足し、
その結果に5を足し、
...と10まで繰り返していきます。
模範解答
sum = 0
10.times do |i|
sum = sum + i + 1
end
puts sum
sum = 0
10.times do |i|
sum += i + 1
end
puts sum
【解説】
今回の作成するのは、1〜10までの数字を順番に足し合わせていくプログラムです。
このプログラムの考え方は以下になります。
①合計値を保存しておく変数sumを用意する
②変数sumに1〜10の数値を順番に足していく
③順番に足していく処理をtimes文の繰り返しで置き換える
④変数sumの値をターミナルに出力する
①合計値を保存しておく変数sumを用意する
1に2を足し、
その結果に3を足し、
その結果に4を足し、
その結果に5を足し、...と10まで繰り返していきます。
よって常に結果を保存しておく変数が必要になります。これを変数名sumとして定義します。
まだ何も足してない状態なので、sumには0を代入しておきます。
②変数sumに1〜10の数値を順番に足していく
sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
問題文にある通り、上記のコードは使用できないためループ処理が可能なtimes文を使用します。
③順番に足していく処理をtimes文の繰り返しで置き換える
times文を使えば、何度も繰り返される同じ処理をまとめることができます。
times文は繰り返したい回数.timesと記載して繰り返す数を決めます。
今回は1〜10まで順番に足していくため、10回同じような処理が繰り返されます。よって繰り返したい回数は10回です。
sum = 0
10.times do |i|
sum += 数値
end
数値の部分は繰り返す回数ごとに変わります。
1回目は1、2回目は2、3回目は3となります。つまり、繰り返しの回数と同じです。
times文では、変数iの中に繰り返しの回数が数値として自動で代入されます。よって、変数iを使えば繰り返しの回数を変数sumに足していくことができます。
ただし、プログラムなので1回目のiの数値は0となります。よってsumに足すのは1増やしたi + 1にしましょう。
sum = 0
10.times do |i|
sum += i + 1
end
④変数sumの値をターミナルに出力
最後にputsメソッドでsumをターミナルに出力できるようにすれば終了です。
0から順に足されることに注意してプログラムを記述することです。