問題
以下の要件を満たすsum_numberメソッドを実装しましょう。
第一仮引数をnとし、第二仮引数をmとすること
nからmまでの数を足し合わせていき、その総和を出力すること
(例:n=1,m=5の場合、総和は1+2+3+4+5=11)
↓雛形
def sum_number(n, m)
# 処理を記述
end
# 呼び出し例
sum_number(1,10)
出力例
sum_number(1,3) → 6 <計算内容:1+2+3>
sum_number(1,10) → 55 <計算内容:1+2+3+4…+10>
sum_number(5,15) → 110 <計算内容5+6+7+8…+15>
私の回答
def sum_number(n, m)
total = 0
while n <= m
total = total + n
n = n + 1
end
puts total
end
# 呼び出し例
sum_number(5,15)
解説
まず2行目に変数totalに0を代入する
3行目でWhile文を使いn<=mの場合の処理を繰り返す
4行目5行目で変数totalに実引数の値を+していく
最終的にtotal値が5~15の総和になる
模範回答
def sum_number(n, m)
total = 0 # 総和を代入する変数を、初期値0で定義しておく
while n <= m # n<=mの条件を満たす間、処理を繰り返す
total = total + n # 変数totalに変数nを足す
n = n + 1
end
puts total
end
# 呼び出し例
sum_number(5,15)
模範解説
まず、1行目で、仮引数nとmを設定し、数値をそれぞれ受け取ります。
2行目で、総和を代入する変数totalを、初期値0で定義しておきます。
3行目から6行目でwhile文を使用し、繰り返し処理を記述しています。条件はn <= mとしています。これは、nがmより小さいまたは同じという条件を満たす時、ブロック内の処理を繰り返すと言う意味です。
繰り返しの処理内では、まず変数totalにnの数値を足します。そして、nに1を足して、次の繰り返し処理を行います。nがmより大きい数値になったら、処理が終了となります。
感じたこと
While文を使った基本的な処理内容だったので、調べながら回答することができた。
Rubyでの繰り返し処理はWhile文、for文、each文、times、loopと色々な記述があるので、
各々の特徴や制限を理解して使用できるようにしたい。
アドバイスやご指摘等ございましたらぜひお願いします!!
以上