BMI Rechner - wo ist der Fehler?

  • Themenstarter Themenstarter Kevin
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

Kevin

Gast
Hallihallo; ich habe einen BMI Rechner in Java geschrieben der allerdings irgendwie nicht will wie ich :wink:
Er scheint nicht richtig zu rechenen ...

Code:
public class BmiRechner {

  public static String bmiCalcM(int weight, double height){
    double bmi = weight/height*height;

    if(bmi>25) return "Sie sind übergewichtig! Ihr BMI:" + bmi;
    else if(bmi<20) return "Sie sind untergewichtig! Ihr BMI:" + bmi;
    else return "Sie sind Normalgewichtig! Ihr BMI:" + bmi;
  }
  
  public static String bmiCalcW(int weight, double height){
    double bmi = weight/(height*height);

    if(bmi>25) return "Sie sind übergewichtig! Ihr BMI:"+ bmi;
    else if(bmi<20) return "Sie sind untergewichtig! Ihr BMI:"+ bmi;
    else return "Sie sind Normalgewichtig! Ihr BMI:" + bmi;
  }

  public static void main(String[] args){
  
    int weight = 60;     //Gewicht in Meter
    double height = 1.8; //Körpergröße in Meter
    String sex = "m"; //Geschlecht (w oder m)
    
    if(sex=="m")System.out.println(bmiCalcM(weight, height));
    else System.out.println(bmiCalcW(weight, height));
  }
  
}

Ich weiss, ist Quick n' Dirty programmiert ... aber naja :wink:
Vielen Dank für Tips bereits im Foraus :applaus:
 
Ersetze
Code:
if(sex=="m")
durch
Code:
if(sex.equals("m"))

Wäre hilfreich wenn du zukünftig schreiben würdest,
was er falsch rechnet.
 
Code:
public static String bmiCalcM(int weight, double height){
double bmi = weight/height*height;
Da müssen noch Klammern hin so wie es bei der weiblichen Variante ist :
Code:
public static String bmiCalcW(int weight, double height){
double bmi = weight/(height*height);
Sonst rechnets du zuerst Gewicht/Größe und dann das Ergebnis noch mal mal
die Größe das wäre bei deiner Variante für einen 1,8m großen 75 kg schweren Mann
Ein BMI von 75! anstatt gut 23.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben