【Java・if文】条件分岐でBMI計算システムを作成

Javaの条件分岐を利用してBMIを計算してくれるシステムを構築しました。

JavaでBMI計算システムを作ってみた

package bmi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
public class Bmi {
	public static void main(String[] args) throws IOException {
                      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("身長を入力してください(cm)");
		String str = br.readLine();
		double sum = Double.parseDouble(str);
		System.out.println("体重を入力してください(kg)");
		String str1 = br.readLine();
		double sum1 = Double.parseDouble(str1);
          double num;
		num = sum * 0.01;
          double bmi;
		bmi = sum1 / (num * num);
		BigDecimal bd = new BigDecimal(bmi);
		BigDecimal bd1 = bd.setScale(1, BigDecimal.ROUND_DOWN);
		System.out.println("BMIは" + bd1 + "です。");
		if (bmi <= 16,9) {
			System.out.println("やせています");
		} else if (bmi <=  17 bmi < 18.4) {
			System.out.println("やせ気味です");
		} else if (bmi <= 18.5 || bmi < 24.9) {
			System.out.println("正常です");
		} else if (bmi <= 25 || bmi < 29.9) {
			System.out.println("太り気味です");
		} else {
			System.out.println("太っています");
		}
	}
}

BMI自体の計算式が間違っていたらすみません。

入力(BufferedReader)

BufferedReaderを使うことで文字の入力ができます。

public static void main(String[] args) throws IOException {
                   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

上記を入力することでキーボードから文字を入力することができます。

身長入力(sum)

System.out.println("身長を入力してください(cm)");
		String str = br.readLine();
		double sum = Double.parseDouble(str);

まずは身長を入力してもらうためのプログラムです。
身長は少数点が入るのでDoubleを利用しています。
今回身長の変数は「sum」とします。

体重入力(sum1)

System.out.println("体重を入力してください(kg)");
		String str1 = br.readLine();
		double sum1 = Double.parseDouble(str1);

体重を入力してもらうためのプログラムです。
体重も少数点が入るのでDoubleを利用しています。
入力項目の個数ごとにString str = br.readLine();をプログラムしないといけません。

計算前に単位を合わせる

BMIの計算はBMI=体重(kg) ÷ [身長(m) X 身長(m)]です。
入力された状態はcmなので、mに変えなければいけません。

double num;
num = sum * 0.01;

これでこれで170cmの人は1.7mに変わります。
mに変わった身長はnumとして次に利用します。

BMIの結果を計算(bmi)

次にBMIの計算結果を求めます。

bmi = sum1 / (num * num);

この式はBMI=体重(kg) ÷ [身長(m) X 身長(m)]です。
これで初めてBMIが出てきます。

小数第一まで出す

BigDecimal bd = new BigDecimal(bmi);
		BigDecimal bd1 = bd.setScale(1, BigDecimal.ROUND_DOWN);

で小数第一までの表示です。
引数の中のbmiは先ほど計算によって出されたbmiです。
bmiはBigDecimalによって小数第一までの表示に変わり、変数「bd1」として利用されます。

BMIの結果表示

最後にif文を利用してBMIの結果を表示することができます。

System.out.println("BMIは" + bd1 + "です。");
		if (bmi <= 16,9) {
			System.out.println("やせています");
		} else if (bmi <=  17 bmi < 18.4) {
			System.out.println("やせ気味です");
		} else if (bmi <= 18.5 || bmi < 24.9) {
			System.out.println("正常です");
		} else if (bmi &lt;= 25 || bmi < 29.9) {
			System.out.println("太り気味です");
		} else {
			System.out.println("太っています");
		}

上記ソースコードで動作しました。

©Copyright2022 FICH-LABO.All Rights Reserved.