Hallo,
Ich habe vorgestern mit Java lernen angefangen und ich muss einen Bmi Rechner mit einer zusätzlichen Methode in der Die Klassifizierung angegeben wird und dann wieder auf die Main Methode zurückgegeben wird und dort ausgeführt wird. Jedoch funktioniert das ganze nicht, es steht am Ende nämlich nur. Dein BMI beträgt: (...)
null
Jedoch soll in der einen Zeile die Klassifizierung angegeben werden. Ich saß jetzt ungefähr 20Minuten an der Aufgabe, dachte dann ich hätte eine Lösung gefunden, jedoch funktioniert es nicht. Hier der Code
Java:
importjava.util.Scanner;publicclass bmirechner {publicstaticvoidmain(String[] args){String klasse =null;Scanner sc =newScanner(System.in);double weight, height, bmi =0;
klasse =klassifizierung(bmi, klasse);System.out.println("Gib deine Größe in Meter ein: ");
height = sc.nextFloat();System.out.println("Gib dein Gewicht in Kilo ein: ");
weight = sc.nextFloat();
bmi = weight /(height * height);System.out.println("Dein BMI beträgt: "+ bmi );System.out.println(klasse);}publicstaticStringklassifizierung(double bmi,String klasse){if(bmi >18.5&& bmi <24){
klasse ="Sie haben Normalgewicht";}elseif(bmi >25&& bmi <29){
klasse ="Sie haben Übergewicht";}elseif(bmi >30&& bmi <34){
klasse ="Sie haben Adipositas Grad 1";}elseif(bmi >35&& bmi <39){
klasse ="Sie haben Adipositas Grad 2";}elseif(bmi >40){
klasse ="Sie haben Adipositas Grad 3";}return klasse;}}
In den Zeilen 6 und 9 deklarierst (und initialisierst) Du die Variablen um diese dann direkt in Zeile 10 zu nutzen in dem Methodenaufruf.
Diese Werte (bmi ist 0, klasse ist null) werden dann verarbeitet und die Rückgabe wird zurück gegeben.
Wenn Du danach die Variablen änderst durch eine Eingabe, dann ändert sich natürlich nicht mehr die Berechnung.
Du musst also den Aufruf an die richtige Stelle packen.
In den Zeilen 6 und 9 deklarierst (und initialisierst) Du die Variablen um diese dann direkt in Zeile 10 zu nutzen in dem Methodenaufruf.
Diese Werte (bmi ist 0, klasse ist null) werden dann verarbeitet und die Rückgabe wird zurück gegeben.
Wenn Du danach die Variablen änderst durch eine Eingabe, dann ändert sich natürlich nicht mehr die Berechnung.
Du musst also den Aufruf an die richtige Stelle packen.
Die Klassifizierung könnte man etwas einfacher formulieren.
Java:
publicstaticStringklassifizierung(double bmi){if(bmi <=18.5)return"Unbekannte Klassifizierung";if(bmi <24)return"Sie haben Normalgewicht";if(bmi <29)return"Sie haben Übergewicht";if(bmi <34)return"Sie haben Adipositas Grad 1";if(bmi <39)return"Sie haben Adipositas Grad 2";return"Sie haben Adipositas Grad 3";}