※初心者向け
※アウトプット練習の為
開発環境
rails 6.0.4.4
ruby 2.6.5
##問題内容
以下のように、果物の名前と値段が入った配列があります。
この配列を用いて、果物の名前とそれぞれの合計額が出力される
コードを記述してください。
fruits_price = [["apple", [200, 250, 220]], ["orange", [100, 120, 80]], ["melon", [1200, 1500]]]
(出力)
appleの合計金額は670円です
orangeの合計金額は300円です
melonの合計金額は2700円です
##解答
fruits_price = [["apple", [200, 250, 220]], ["orange", [100, 120, 80]], ["melon", [1200, 1500]]]
fruits_price.each do |fruit|
sum = 0
fruit[1].each do |price|
sum += price
end
puts "#{fruit[0]}の合計金額は#{sum}円です"
end
##解説
最初に、3行目でfruits_priceから**["apple", [200, 250, 220]]という値を取り出し、
変数fruitに代入します。その後4行目〜7行目で、fruitの1番目の値[200, 250, 220]**
から値を1つずつ取り出して、自己代入しながらsumを出力します。
丁寧に見ると以下のようになります。
# 1回目
sum = 0
#sum += priceはsum = sum + priceと解釈できる
sum = 0 + 200
# 返り値
sum = 200
#2回目
#sumは1回目の200という値が返されます
sum = 200
sum = 200 + 250
sum = 450
#3回目
#sumは2回目の450という値が返されます
sum = 450
sum = 450 + 220
sum = 670
この結果、appleの合計金額は670円ですと出力されるようになります。この作業を残り2つorange、melonでも繰り返します。