質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1417閲覧

BMI値と肥満度を求めるコードの計算結果を正常に反映させたい。

momomomon

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/01/15 07:56

BMI値と肥満度を求めるコードの計算結果を正常に表示させたい。

JavaでBMI値と肥満度を計算するコードを書いてみたのですが、コマンドプロンプトで実行してみるとどんな値を入力してもBMI値が「0.0」と表示されてしまいます。(エラー表示などは出ませんでした。)

以下、問題のコードです。

Java

1import java.util.Scanner; // Scannerクラスをimport 2 3class BMI { 4 public static void main(String args[]){ 5 6 Scanner scan = new Scanner (System.in); // Scannerクラスのオブジェクトscanを生成 7 8 //変数の定義 9 String name, type; 10 int height, weight; 11 12 System.out.println ("BMI値と肥満度を計算します。"); 13 14 System.out.println ("名前入力して下さい。"); 15 name = scan.next (); // nextメソッドで文字列を入力 16 17 System.out.println ("身長(m)を入力してください。"); 18 height = scan.nextInt (); // nextIntメソッドで整数を入力 19 20 System.out.println ("体重(kg)を入力してください。"); 21 weight = scan.nextInt (); // nextIntメソッドで整数を入力 22 23 //エラーの処理 24 if(height > 0 && weight > 0){ 25 ; 26 } 27 else { 28 System.out.println ("入力エラーです。"); 29 return; //実行終了 30 } 31 32 double bmi = weight / (height * height); //BMI値の計算結果を変数bmiに代入 33 34 //変数type(肥満度)に関する条件分岐 35 if(bmi < 20){ 36 type = "痩せ気味"; 37 } 38 else if( 20 <= bmi && bmi < 24 ){ 39 type = "標準"; 40 } 41 else{ 42 type = "太り気味"; 43 } 44 45 System.out.println ( name + "さんのBIM値は、" + bmi + "で、"+ type + "です。"); 46 } 47}

実行結果は以下です。

BMI値と肥満度を計算します。
名前入力して下さい。
hanako
身長(m)を入力してください。
164
体重(kg)を入力してください。
48
hanakoさんのBIM値は、0.0です。
痩せ気味です。

検索して出てきたコードを見ながら変更を加えたり順番を変えたりしたのですが結果は変わらず、何が原因なのか分からない状態です。原因がお分かりになる方、ご教授頂けたら幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

身長(m)を入力してください。
164
体重(kg)を入力してください。
48

164 "m" とはすごいですね。
という冗談はさておき
cm を m にするために 100で割りましょう。

投稿2022/01/15 08:08

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momomomon

2022/01/15 08:44

確かにそうでした…。低レベルな質問をしてしまい申し訳ないです…。迅速な回答、とても助かりました!!ありがとうございます!!!
guest

0

double bmi = weight / (height * height); //BMI値の計算結果を変数bmiに代入

intどおしの割り算の結果はintとなってしまいます
doubleの結果が欲しいならば、片方doubleにキャストしましょう

double bmi = (double)weight / (height * height); //BMI値の計算結果を変数bmiに代入

投稿2022/01/15 08:07

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momomomon

2022/01/15 08:46

全ての数値をdoubleに直したら正常に表示されるようになりました。勉強になりました!丁寧なご回答ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問