在两种不同的方法之间传递字符串值

时间:2018-05-01 21:46:49

标签: java

我从java开始并通过我的BMI计算器返回正确的值而遇到问题。我真的很感谢你的帮助!

亲切的问候, 安迪...

public class bmirechner {

    public static void main(String[] args) {

        String ergebnis ="";
        bmirechner(ergebnis);
        System.out.println(ergebnis);
    }

    public static String bmirechner(String ant){

        int kg=0;
        float length=0;
        double bmi=0;

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte geben Sie ihr Körpergewicht ein.");
        kg = sc.nextInt();      
        System.out.println("Bitte geben Sie ihre Größe ein.");
        length = sc.nextFloat();

        bmi = kg/(length*length);

        if(bmi>=18.5&&bmi<=24) {
            return ant="Normalgewicht";
        }
        else if(bmi>=24&&bmi<30) {
            return ant="Übergewicht";
        }
        else if(bmi>=30&&bmi<35) {
            return ant="Adipositas Grad 1";
        }
        else if(bmi>=35&&bmi<40) {
            return ant="Adipositas Grad 2";
        }
        else if(bmi>40) {
            return ant="Adipositas Grad 3";
        }
        else return ant="nicht vorhanden";

    }

}

2 个答案:

答案 0 :(得分:1)

我对java不是很熟悉,但我正在思考return ant="Normalgewicht";部分。我只会写return "Normalgewicht";

答案 1 :(得分:1)

在你的if语句中你有一些代码不知道该做什么的情况

    if(bmi>=18.5&&bmi<=24) {
        return ant="Normalgewicht";
    }
    else if(bmi>=24&&bmi<30) {
        return ant="Übergewicht";
    }

如果你输入24,它只会调用第一种方法。你应该将第一个if条件更改为&lt; 24而不是&lt; = 24。

    else if(bmi>=35&&bmi<40) {
        return ant="Adipositas Grad 2";
    }
    else if(bmi>40) {
        return ant="Adipositas Grad 3";
    }

这里你没有办法处理如果输入40会发生什么,因为bmi&lt; 40和bmi&gt; 40不包括该值。你可能想把最后一个条件改为if(bmi> 40)。

您也不需要return ant=" Normalgewicht";,您希望在主方法中拥有return "Normalgewicht";并拥有String ergebnis = bmirechner();