【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 <= 25 || bmi < 29.9) { System.out.println("太り気味です"); } else { System.out.println("太っています"); }
上記ソースコードで動作しました。
Yusuke
最新記事 by Yusuke (全て見る)
- 【準備は何が必要?】フリーランスクリエイターとは? - 2022年4月24日
- 【ファクタリング】フリーランスの為の先払いサービスとは? - 2022年4月23日
- 【初心者必見】フリーランスになる前に読んでおくべき本を紹介! - 2022年4月22日