こんにちは。
当ページにアクセスしてくださり、ありがとうございます。
この記事は、プログラミング言語「Ruby」についての記事になります。
問題
下記の結果になるよう、コードの記述を行なってください。
1 空のハッシュ hash を定義する
2 hashのキー 「:name」 に"Suzuki"を代入する
3 hashのキー 「:height」 に1.6を代入する
4 hashのキー 「:weight」 に60を代入する
5 hashのキー 「:bmi」 にBMIの結果を代入する(*1)
6 ターミナルに以下の表示がされるようなコードを書く
name: Suzuki
height: 1.6
weight: 60
bmi: 23.4
(*1)BMIの計算方法は 体重(kg) ÷ 身長(m) の二乗 とします。
尚、ハッシュと配列は混合しやすいイメージがありますので、違いについては次の記事をどうぞ。
【関連記事】
模範回答
```Ruby
1 hash = {}
2 hash[:name] = "Suzuki"
3 hash[:height] = 1.6
4 hash[:weight] = 60
5 hash[:bmi] = (hash[:weight] / hash[:height] ** 2).round(1)
6
7 hash.each do |key, value|
8 puts "#{key}: #{value}"
9 end```
上記になりますので、解説していきます。
解説
①1行目で、ハッシュを用意します。
②2〜4行目で、ハッシュの箱を用意して、その箱に値を格納します。
ハッシュでも配列でも同じ事が言えますが、各々値を格納する場合、「箱」を用意して且つ、名前もつけることを忘れないでください。
例えば、「みかん、果物、120(円)」をそれぞれ格納したい場合、次のようになります。
```Ruby
hash[:name] = "みかん"
hash = {} //ハッシュを用意します。
hash[:category] = "果物"
hash[:price] = 120```
❗️「hash」が配列の名前、「:name」が箱の名前、「みかん」がその箱に入れる値です。
上記になります。
③5行目で、体重(hash[:weight] )÷身長(hash[:height])の2乗(**2)したものを、.round(1)を使って、小数点2桁以降を四捨五入します。
(求めている回答は、小数点第一までの為)
その計算結果を、hash[:bmi]に格納します。
④7〜9行目で、.eachメソッドを使い、名前(name)、身長(height)、体重(weight)、BMI値(bmi)をそれぞれ出力しています。
以上の流れになります。
これが理解できると、複数データの保存・取り出しができるようになります。
また、配列とどう違うのか?理解に苦しむかもですが、頑張ってください。
以上となります、参考になれば幸いです。
最後まで読んでいただき、ありがとうございました。