002-001-005

Scannerキーボード入力:nextDoubleでBMI計算機(System.in使用)

上級

問題説明

解説

この問題では: 名前・身長(メートル)・体重(キログラム)・年齢を標準入力から読み込み、BMI(体格指数)を計算してUnderweight/Normal/Overweightの3段階で判定し、健康診断カード形式で標準出力に表示するプログラムを作成します。

nextDouble()メソッド

nextDouble()は小数(double型)を読み込むメソッドです。身長や体重など、小数が必要なデータの入力に使用します。

実装例

import java.util.Scanner;

public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

// 各データを読み込む
String name = sc.nextLine();
double height = sc.nextDouble();
double weight = sc.nextDouble();
int age = sc.nextInt();

// BMIを計算
double bmi = weight / (height * height);

// 判定を決定
String status;
if (bmi < 18.5) {
  status = "Underweight";
} else if (bmi < 25.0) {
  status = "Normal";
} else {
  status = "Overweight";
}

// 健康診断カードを表示
System.out.println("===== Health Check Card =====");
System.out.println("Name: " + name);
System.out.println("Height: " + height + "m");
System.out.println("Weight: " + weight + "kg");
System.out.println("Age: " + age + " years old");
System.out.printf("BMI: %.1f%n", bmi);
System.out.println("Status: " + status);
System.out.println("=============================");

}
}

重要なポイント

  • nextDouble(): 小数を読み込むメソッド
  • double型の計算: 小数を含む計算結果も小数になる
  • printf(): 小数の桁数を制御した出力(%.1fで小数第1位まで)
  • 複数の条件分岐: if-else ifを使った段階的な判定

BMI計算の意味

BMIは体重と身長のバランスを示す指標です。この計算を通じて、実用的なプログラムの作成方法を学びます。

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録