Methoden BMI -Wert Aufgabe(Methoden)

g_gex

Mitglied
Hallo,

ich versuche grad Java zulernen und habe grade bei einer Aufgabe ein Problem.
Es geht darum ein BMI - Wert zu berechnen aber in der Konsole ist der BMI wert gleich 0 oder es ist Nan (not a Number)
mein Code sieht wie folgt aus :

Java:
import java.util.Scanner;

public class BMI {

double kg ;
double meter;

public BMI(double kg, double meter) {

this.kg = kg;
this.meter = meter;
}

public BMI() {

}

public BMI auslesen() {

Scanner scan = new Scanner(System.in);
System.out.println("Geben Sie bitte Ihr Gewicht ein: ");
double kg = scan.nextDouble();

System.out.println("Geben Sie hier bitte Ihre Größe ein: ");
double meter = scan.nextDouble();

BMI b = new BMI(kg, meter);

return b;

}

public double berechne(double kg, double meter) {

double bmi = kg / (meter * meter);
System.out.println(meter);
System.out.println("Ihr BMI-Wert beträgt: " + bmi);

return bmi;

}

public void ausgeben() {

berechne(kg, meter);

}

public static void main(String[] args) {

BMI s = new BMI();
s.auslesen();
s.ausgeben();

}

}
Was mache ich falsch? obwohl ich mit der Scanner die daten lesen ist meter = 0.0
Braucht man denn in der Methode berechne()einen return-Wert?
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Bitte deinen Java Code in [code=java]//Java code[/code] posten

Laut deiner Programmlogik gehört statt:
Java:
BMI s = new BMI();
s.auslesen();
s.ausgeben();

Java:
BMI s = new BMI();
s = s.auslesen();
s.ausgeben();
 

Flown

Administrator
Mitarbeiter
Variablen deklariert man nur einmal und initialisiert sie höchstens einmal. Dann nennt man es Zuweisung.

Du hast eine Art immutable BMI Klasse erstellt und sogar eine Fluent API eingebaut.

Also rekapitulieren wir mal die Klasse:
  • BMI berechnen ist abhängig von Größe und Gewicht, also ist sie nicht einem gewissen Objektzustand. Das heißt man kann die Methode berechne static machen.
  • Also man braucht zum initialisieren eines BMI-Objektes entweder die Daten (Größe und Gewicht) oder man läßt es dem User. Darum kann man ein Builder-Pattern anlegen und die Builder-Methode(auslesen) static machen.
  • berechne-Methode sollte wie der Name schon sagt nur berechnen und keine zusätzlichen Ausgaben tätigen.
  • Hingegen Ausgabe genau das machen sollte.
  • Auch sollte man das ganze in Englisch halten (ist guter Programmier-Usus)

Dann sollte deine Klasse so aussehen:
Java:
import java.util.Scanner;

public class BMI {

   private final double weigth;
   private final double height;

   public BMI(double weight, double height) {

     this.weigth = weight;
     this.height = height;
   }

   public static BMI read() {

     Scanner scan = new Scanner(System.in);
     System.out.println("Geben Sie bitte Ihr Gewicht ein (kg): ");
     double weight = scan.nextDouble();

     System.out.println("Geben Sie hier bitte Ihre Größe ein (m): ");
     double height = scan.nextDouble();

     return new BMI(weight, height);

   }

   public static double calculate(double weight, double height) {
     return weight / (height * height);
   }

   public void print() {
     double bmi = calculate(weigth, height);
     System.out.format("Ihre Größe und Gewicht betragen: %f m und %f kg.%n", height, weigth);
     System.out.println("Somit ist Ihr BMI: " + bmi);
   }

   public static void main(String[] args) {
     BMI s = BMI.read();
     s.print();
   }
}

Aber du kannst auch gerne deinen Code weiterverwenden. Dann müsstest du einfach in der auslesen-Methode die Instanzvariablen (meter, kg) ändern und kein neues BMI Objekt zurückliefern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wie kann man herausfinden, wo der Wert herkommt ? Allgemeine Java-Themen 13
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S Wert zuweisung Allgemeine Java-Themen 1
Alex_99 Rechner: Wert zwischenspeichern und bei Bedarf mit Ihm weiterrechnen? Allgemeine Java-Themen 6
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
Tiago1234 CellReference cr = new CellReference("") gibt den falschen Wert zurück Allgemeine Java-Themen 49
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
L String zu repräsentativen Wert Allgemeine Java-Themen 0
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
T Array - Wert am nächsten zur vollen Sekunde Allgemeine Java-Themen 20
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
F Wert ändert sich nicht Allgemeine Java-Themen 12
E JavaFX String-Wert geht "verloren" - ratlos Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
R Int Wert im Dialogfeld ändern Allgemeine Java-Themen 4
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
M HashMaps: Wert erweitern Allgemeine Java-Themen 3
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
X this.val$WERT Was ist den das? Allgemeine Java-Themen 2
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
S Daten in Array als INT-Wert einlesen - jetzt als csv Datei Allgemeine Java-Themen 5
T OLE-Automation mit Excel (Wert übergabe) Allgemeine Java-Themen 1
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
M Bit Wert umdrehen Allgemeine Java-Themen 5
J ArrayList aus Point-Objekten nach dem x-Wert ordnen Allgemeine Java-Themen 2
B Wert mit Adresse auslesen Allgemeine Java-Themen 11
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Ein Array-Wert soll sich verändern, aber 2 tun es? Allgemeine Java-Themen 7
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
G transientes Objekt mit Wert initialisieren? Allgemeine Java-Themen 7
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
reibi double-Wert auf 2 Stellen nach dem Komma abschneiden Allgemeine Java-Themen 6
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
MQue Float- Wert formatieren Allgemeine Java-Themen 8
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
J Integer Array Wert vorhanden? Allgemeine Java-Themen 6
N Wert in ArrayList ändert sich ohne wissentliches zutun Allgemeine Java-Themen 6
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
H JTable Wert verändern Allgemeine Java-Themen 3
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
J Vector - Wert ersetzen Allgemeine Java-Themen 14
H Zugriff auf Wert einer Umgebungsvariablen Allgemeine Java-Themen 2
H JSF - Wert an ein managed bean übergeben Allgemeine Java-Themen 2
H boolean wert ändern Allgemeine Java-Themen 2
R Wert in Hashtable ändern (Key ändern, Value bleibt) Allgemeine Java-Themen 3
G Wandeln von Char Wert in Zeichen? Allgemeine Java-Themen 2
B Java Klasse muß in Terminal einen Wert zurückgeben. Allgemeine Java-Themen 3
R ascii-wert zuweisung Allgemeine Java-Themen 4
B Wert zuweisen bei deklaration? Allgemeine Java-Themen 9
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
A Float-Wert auf 2 Stellen nach den Komma runden ? Allgemeine Java-Themen 2
B Double-Wert aus einem HexString erstellen. Allgemeine Java-Themen 11
B Wie bekomme ich den Wert aus der For-Schleife? Allgemeine Java-Themen 5
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
OnDemand Erstellen von Quartz Jobs pro Aufgabe oder zusammenfassen Allgemeine Java-Themen 7
M Bräuchte Hilfe bei der Aufgabe Allgemeine Java-Themen 1
parrot Array Aufgabe Allgemeine Java-Themen 3
parrot Rekursion Aufgabe Allgemeine Java-Themen 12
S Aufgabe erwünscht Allgemeine Java-Themen 7
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
M Polymorphie Aufgabe Allgemeine Java-Themen 15
H Stack mit bestimmter Aufgabe Allgemeine Java-Themen 62

Ähnliche Java Themen

Neue Themen


Oben