課題2-1

1) 身長と体重を入力するとBMI指数を計算し,BMI指数と判定結果を表示するプログラム BMI を書け.

■ Bmi.java

C:\home\Java>cat -n Bmi.java
     1  public class Bmi {
     2      public static void main(String[] arg) {
     3          //変数を宣言する
     4          double weight;
     5          double height;
     6          double bmi;
     7
     8          // 体重,身長を入力する
     9          System.out.println("BMI(Body Mass Index)指数を計算します.");
    10          System.out.print("体重をKg単位で入力: ");
    11          weight = Keyboard.doubleValue();
    12          System.out.print("身長をメートル単位で入力: ");
    13          height = Keyboard.doubleValue();
    14
    15          // 身長の確認をする
    16          if (height == 0) {
    17              System.out.println("身長はゼロではいけません.");
    18              return;         // 実行を終了し戻ります
    19          }
    20
    21          // BMI指数を計算し表示する
    22          bmi = weight / (height * height);
    23          System.out.println("BMI指数は " + bmi + " です.");
    24
    25          // BMI指数の値によって肥満度を日本語表示する
    26          if (bmi < 20) {
    27              System.out.println("痩せすぎです.");
    28          } else if (bmi < 24) {
    29              System.out.println("正常です.");
    30          } else if (bmi < 26.5) {
    31              System.out.println("やや肥満です.");
    32          } else {
    33              System.out.println("肥満です.");
    34          }
    35      }
    36  }

■ 実行例

C:\home\Java>java Bmi
BMI(Body Mass Index)指数を計算します.
体重をKg単位で入力: 75
身長をメートル単位で入力: 1.7
BMI指数は 25.95155709342561 です.
やや肥満です.

C:\home\Java>java Bmi
BMI(Body Mass Index)指数を計算します.
体重をKg単位で入力: 108.4
身長をメートル単位で入力: 1.95
BMI指数は 28.507560815253125 です.
肥満です.

C:\home\Java>java Bmi
BMI(Body Mass Index)指数を計算します.
体重をKg単位で入力: 40.5
身長をメートル単位で入力: 1.52
BMI指数は 17.52943213296399 です.
痩せすぎです.

■ 解説

15-19行目で身長として"0"が入力されていないか確認しています.もし,この行が
なく身長として"0"を入力するとどのような動作になるか試して,この行の意味を
考えてみてください.

22行目"bmi = weight / (height * height)"となっている部分は
"bmi = weight / height / height"と書いても動作します.

26-34行目の判定部分では"else if"を利用しています."if"を
重ねる方法でもかまいません.

参考) BMI値の桁数が多くて見づらいですが小数点以下の表示桁数を指定する場合,

     1  import java.text.*;

をファイルの先頭に追加し(詳細は後の回で説明があるはずです),BMI計算・表示部分を

    17          // BMI指数を計算し、表示する
    21          DecimalFormat df = new DecimalFormat("###.##"); //小数点以下2桁に指定
    22          System.out.println("BMI指数は " + df.format(bmi) + " です.");

に差し替えれば小数点以下2桁で表示できます.

Last modified: Wed May 10 14:35:18 JST 2006