未来エンジニア養成所Blog

月単価150万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【Java】基本構文に関する問題1-6

title


問題1-6

double型の2つの変数(身長height と 体重weight)が宣言してあります。

次の手順にしたがって、肥満度(BMI)測定を行ってください。

  1. double型の変数bmiを宣言します。
  2. 変数bmiにBMI値を格納します。BMI値の算出方法は以下の通りです。
    BMI = (体重kg) ÷ (身長m の二乗)
  3. 変数bmiの値を次の形式で出力します。
    「あなたのBMI値は○○です」
  4. 最後に、変数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公式アカウント

仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】


LineOfficial

友だち追加