問題1-6
double型の2つの変数(身長height と 体重weight)が宣言してあります。
次の手順にしたがって、肥満度(BMI)測定を行ってください。
- double型の変数bmiを宣言します。
- 変数bmiにBMI値を格納します。BMI値の算出方法は以下の通りです。
BMI = (体重kg) ÷ (身長m の二乗) - 変数bmiの値を次の形式で出力します。
「あなたのBMI値は○○です」 - 最後に、変数bmiの値に応じて次のようなメッセージを出力します。
26.5以上 ・・・ 「肥満です」
25.5未満24以上 ・・・ 「太り気味です」
24未満20以上 ・・・ 「普通です」
20未満0以上 ・・・ 「スリムです」
それ以外 ・・・ 「エラーです」
【実行結果】
身長:170.0(cm) 体重:88.0(kg) あなたのBMI値は30.449826989619382です 肥満です
身長:170.0(cm) 体重:55.0(kg) あなたのBMI値は19.031141868512112です スリムです
【IfCalculatePractice.java】
public class IfCalculatePractice { public static void main(String[] args) { double height = 170.0; // ←値を変更しながら実行 double weight = 88.0; // ←値を変更しながら実行 System.out.println("身長:" + height + "(cm)"); System.out.println("体重:" + weight + "(kg)"); // BMI値の算出と表示 } }
解答例
【IfCalculatePractice.java】
public class IfCalculatePractice { public static void main(String[] args) { double height = 170.0; // ←値を変更しながら実行 double weight = 88.0; // ←値を変更しながら実行 System.out.println("身長:" + height + "(cm)"); System.out.println("体重:" + weight + "(kg)"); // BMI値の算出と表示 // BMI変数の宣言と演算結果の格納 double bmi = weight / ((height / 100) * (height / 100)); // BMI値の出力 System.out.println("あなたのBMI値は" + bmi + "です"); // BMI値に応じた評価の出力 if(bmi >= 26.5) { System.out.println("肥満です"); } else if(bmi < 26.5 && bmi >= 24) { System.out.println("太り気味です"); } else if(bmi < 24 && bmi >= 20) { System.out.println("普通です"); } else if(bmi < 20 && bmi >= 0) { System.out.println("スリムです"); } else { System.out.println("エラーです"); } } }
解説
今回の問題で良くあるミスは、どんな身長・体重を入力しても「スリムです」しか出力されないというケースがあります。
これは、身長の単位の扱いによるミスでしょう。
変数で設定する身長はセンチメートルで設定します。
これは自然な表現です。
しかし、BMI値計算の際には、身長をメートルに変換、つまり設定した身長(センチメートル)を100で割る必要があります。
今回の解答例では、メートルに変換した身長の2乗を算出するのに、同じ数値を掛けて算出しました。
double bmi = weight / ((height / 100) * (height / 100));
少し野暮ったい感じもしますが、Javaにはべき乗を算出する演算子は存在しません。
(他のプログラミング言語には、べき乗の演算子を持つものもあります。)
その代替策としては、数値を2乗するのにMathクラスのpowメソッドを使用する方法もあります。
書き換えると、以下のようになります。
double bmi = weight / Math.pow(height / 100, 2);
powメソッドの第二引数の「2」が、二乗を表現しています。
そして算出したBMI値を元にif文を記述して診断結果を出力しています。
else文で捕まえているエラーはBMIが負の数、つまり設定した値が負の値の場合のみエラーメッセージが表示されます。
正しくコーディングできれば、あなたのBMI値を算出することができます。
これを機に、肥満度をチェックして健康管理してみるのも良いですね。
参考図書
LINE公式アカウント
仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】