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

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

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

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

Q&A

解決済

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

momomomon
momomomon

総合スコア13

Java

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

2回答

0グッド

0クリップ

771閲覧

投稿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です。
痩せ気味です。

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

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

ベストアンサー

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

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

投稿2022/01/15 08:08

takasima20

総合スコア7432

momomomon👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

momomomon

2022/01/15 08:44

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

1

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

総合スコア86514

momomomon👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

momomomon

2022/01/15 08:46

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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