each入れ子構造

家具の名前と値段が入った配列の合計額を出力したいとき(each入れ子構造)

 

furniture_price = "table", [200, 250, 220, ["chair", [100, 120, 80]], ["sofa", [1200, 1500]]]

 

まずはじめに["table", [200, 250, 220]という値を取り出す。

そして、変数furnitureに代入。

その後、[200, 250, 220]という値を1つずつ取り出し、自己代入してsumを出力する。

①sum = 0

②sum = 0 + 200

③返り値としてsum = 200となる。

 

そして、2回めの処理として

① sum =  200から始まり、

② sum =  200 + 250

③sum  =  450となり、③回めも同様の処理をすると合計値が670となる。

よってこの処理はtableの合計金額は670円ですと出力されることになる。

この処理を後のchairとsofaでも繰り返し行う。

 

 

furniture_price = [["table", [200, 250, 220]], ["chair", [100, 120, 80]], ["sofa", [1200, 1500]]]

furniture_price.each do |fruit|
  sum = 0
  furniture[1].each do |price|
    sum += price
  end
  puts "#{furniture[0]}の合計金額は#{sum}円です"
end