今回はJavaのif分を使ってBMI計算を作りました。
↓
↓
↓
↓
Bmi.java
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("太っています"); }
で一応動きます。
完成度90%
ですが四捨五入前のbmiが利用されているので、際どい結果は少し変わってしまいます….
修正が完了したらまた更新します。
The following two tabs change content below.
Java・C#・PHP・Servlet JSP・SQL・Python
https://gotoyusuke.com/
最新記事 by YusukeGoto (全て見る)
- 【WordPress】RSSで外部のサイトから記事を取得する方法 - 2020年10月11日
- 【WordPress】関連記事一覧を表示する方法 - 2020年10月11日
- 【CSS】CSSの基本 - 2020年10月10日
コメントを残す