currentPost.edit();/**
* Write a description of class Bmi here.
*
* @author (David )
* @version (a version number or a date)
*/publicclassBmi{int gewicht;double groesse;int BMI;voidbmi(int größe,int gewicht){
BMI =(gewicht/(größe*größe));}publicvoidausgeben(){System.out.println("Sie wiegen "+gewicht+"kg");System.out.println(" Ihre Größe betragt. "+groesse+" cm");System.out.println(" ihr Bmi beträgt : "+ BMI+" punkte");if(BMI <20){System.out.println("Laut BMI haben Sie Untergewicht!");}else{if(BMI >25){System.out.println("Laut BMI haben Sie Übergewicht!");}else{System.out.println("Laut BMI haben Sie Normalgewicht!");}}}}
warum rechnet er mir den Bmi nicht aus?
Solltest du nur diese Klasse haben und die ist so, wie sie da steht, vollständig, dann kann das garnicht funktionieren. Wie soll deine Applikation starten? Wo wird bmi() bzw ausgeben() überhaupt mal aufgerufen? Und woher kommen die Werte für Gewicht und Grösse? Ich hab mal ein kleines Beispiel gemacht (allerdings mit festen Werten für Gewicht und Größe, also ohne Eingabemöglichkeit). Zumal da noch einige Dinge überhaupt nicht gut aussahen. ^^
Java:
publicclassBMI_Calculator{staticdouble weight =70;staticdouble height =1.80;staticdoublebmi(double height,double weight){return(weight /(height * height));}publicstaticvoidmain(String[] args){double BMI =bmi(height, weight);System.out.println("Sie wiegen "+ weight +" kg.");System.out.println("Ihre Größe beträgt "+ height *100+" cm.");System.out.println("Ihr Bmi beträgt : "+ BMI +" Punkte");if(BMI <20){System.out.println("Laut BMI haben Sie Untergewicht!");}else{if(BMI >25){System.out.println("Laut BMI haben Sie Übergewicht!");}else{System.out.println("Laut BMI haben Sie Normalgewicht!");}}}}
*SEUFZ* Immer diese super-dämlichen BMI-Rechner! Können Lehrer nicht mal was sinnvolles aufgeben?
Und diese Angabe von statischen Werte (>25 = Übergewicht) ist auch falsch. Das hängt nämlich vom Lebensalter ab. Ein Kleinkind mit diesem Wert wäre super-fett, wohingegen ein 60 Jähriger deutlich schwerer sein darf, ohne als übergewichtig zu gelten.
Der BMI ansich ist ja auch nicht wirklich aussagekräftig. Wenn jemand durchtrainiert und deswegen schwerer ist, dann kann es ja trotzdem sein, dass er gesund ist und kein Übergewicht hat, auch wenn der BMI das behaupten würde.
publicclassBmi{double groesse, gewicht;publicvoidgiveGroesse(double wert){
groesse=wert;}publicvoidgiveGewicht(double wert){
gewicht=wert;}publicBmi(){
gewicht=70;
groesse=180;}publicdoubleBMI(){double BMI;
BMI =(gewicht/(groesse*groesse)*10000);return BMI;}publicvoidausgeben(){System.out.println("Sie wiegen "+gewicht+"kg");System.out.println(" Ihre Größe betragt. "+groesse+" cm");System.out.println(" ihr Bmi beträgt : "+BMI()+" punkte");if(BMI()<20){System.out.println("Laut BMI haben Sie Untergewicht!");}else{if(BMI()>25){System.out.println("Laut BMI haben Sie Übergewicht!");}else{System.out.println("Laut BMI haben Sie Normalgewicht!");}}}}
Das sollte so funzen.
Du kannst mit void giveGewicht und giveGroesse die Variablen festlegen, aus BMI habe ich eine Funktion mit return gemacht. Also einfach groesse gewicht eingeben(oder die voreingestellten Werte nehmen) dann ausgeben und es sollte funzen .
Mir faellt grad noch ein wenn du BMI schoener machen willst nimm das.
Java:
newCodeSnippet();publicvoidgiveBmiAuswertung(){if(BMI()<16){System.out.println("Sie haben starkes Untergewicht.");}elseif(BMI()>=16&&BMI()<=16.99){System.out.println("Sie haben mäßiges Untergewicht");}elseif(BMI()>=17&&BMI()<=18.49){System.out.println("Sie haben leichtes Untergewicht.");}elseif(BMI()>=18.5&&BMI()<=24.99){System.out.println("Sie haben normales Gewicht");}elseif(BMI()>=25&&BMI()<29.99){System.out.println("Sie sind Präadipositas");}elseif(BMI()>=30&&BMI()<34.99){System.out.println("Sie sind Adipositas Grad 1");}elseif(BMI()>=35&&BMI()<39.99){System.out.println("Sie haben Adipositas Grad 2");}else{System.out.println("Sie haben Adipositas Grad 3");}}