40281


入力した身長と体重からBMIを測定するプログラムを作成しています。  
自分の身長と体重、BMIと標準体重を表示し、  
3つ目のメソッドで返ってきた値がtrueであれば「合格！」、  
falseであれば「頑張ろう！」と表示したいと思っていますが、  
メソッドisHealthがうまく返せずいろいろ試してみるも、こんがらがってしまいました。

> boolean res = isHealth(re);

の箇所が「re を変数に解決できません」となってしまいます。  
どなたかご教授いただけませんでしょうか。。

> 【コンソール画面サンプル】  
>  あなたの身長を入力  
>  1.72  
>  あなたの体重  
>  62  
>  あなたの身長は1.72で  
>  体重は62.0なので  
>  BMIは20.9572....（省略  
>  標準体重は65.0847.....（省略）  
>  合格！！
[code]

    package study;
    import java.io.*;
    
    public class bmi1 {
        public static void main(String[] args) {
        BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
            double h, w, sta;
            try {
                System.out.println("あなたの身長(m)を入力してください");
                h = Double.parseDouble( a.readLine() );;
                System.out.println("あなたの体重(kg)を入力してください");
                w = Double.parseDouble( a.readLine() );
    
                double bmi = bmi(h,w);
                double stan = standard(h,sta);
                boolean res = isHealth(re);
    
                System.out.println("あなたの身長は"+h+"mで");
                System.out.println("あなたの体重は"+w+"kgなので");
                System.out.println("あなたのBMIは"+bmi);
                System.out.println("標準体重は"+sta+"なので");
                if(true){
                    System.out.println("合格!!");
                }else{
                    System.out.println("頑張ろう！");
                }
            } catch (NumberFormatException o) {
                System.out.println("数字以外のものが入力されています");
            } catch (Exception e) {
                System.out.println(e);
            }
        }
        private static double bmi(double h,double w){
            double bmi = w / ((h * h));
            //BMI＝体重（kg）÷（身長（m）×身長（m）
            return bmi;
        }
        private static double standard(double h,double w){
            double sta = h * h * 22;
            //標準体重（kg）＝身長（m）×身長（m）×22（BMI標準値）
            return sta;
        }
        private static boolean isHealth(double w, double sta){
            boolean result;
            //x標準体重(w)以下であればtrue、でなければfalseを返す
            result=(w < sta);
            return result;
        }
    }
    
[/code]


CC BY-SA 3.0
2017-12-14T13:22:46.767
40280
2017-12-14T13:39:11.237
2017-12-14T13:39:11.237
3060
26629
question
java
BMI測定値のコーディングについて

[code]

    boolean res = isHealth(re);
    
[/code]

この行では `isHealth` という名前のメソッドに変数 `re` の値を渡し、返ってきた値を変数 `res`
の初期値としています。しかしここには複数の問題があります。

  * この行があるスコープでは、変数 `re` は宣言されていません（存在しません）。これがエラーメッセージ「re を変数に解決できません」が言っていることです。
  * メソッド `isHealth` の定義を見ると、引数を2つ渡すようになっています。しかしこの行では引数を1つしか渡していません。

たとえば `isHealth(h, stan)` とするなどして、適切な引数を渡してあげてください。


CC BY-SA 3.0
2017-12-14T13:38:40.147
40281
2017-12-14T13:38:40.147
19110
40280
answer