LoginSignup
0
0

More than 1 year has passed since last update.

本日のRuby基礎練習問題(22/4/12)

Posted at

問題

以下の要件を満たすsum_numberメソッドを実装しましょう。
第一仮引数をnとし、第二仮引数をmとすること
nからmまでの数を足し合わせていき、その総和を出力すること
(例:n=1,m=5の場合、総和は1+2+3+4+5=11)

↓雛形

ruby.rb
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>

私の回答

ruby.rb
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の総和になる

模範回答

ruby.rb
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と色々な記述があるので、
各々の特徴や制限を理解して使用できるようにしたい。

アドバイスやご指摘等ございましたらぜひお願いします!!

以上

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0