Frage von ollu9, 136

BMI berechnen mit Java: wie (Normal-, Über-, Untergewicht mit "if/else")?

Ich habe folgendes Problem: Den BMI einer Person kann ich erfolgreich bestimmen lassen und nun geht es darum, festzustellen, ob diese Person Über-, Unter- oder Normalgewicht hat (unabhängig vom Geschlecht). Dies würde ich gerne über "if/else" erledigen, leider gelingt mir dies nicht - hat Jemand eine Idee ?

Antwort
von SirNik, 53

1) Nach jeder Ausgabe per System.out.println ("") fehlt ein " ; ".
Ein ; ist der Befehlsabschluss. Also nach jedem Befehl MUSS ein ; hin.

2) in Java programmierst du in Klassen. In diesen Klassen gibt es Methoden, all deib Code MUSS innerhalb einer methode stehen (ausser klassenvariablen)

3) du hast eine if aufgemacht, aber nicht geschlossen und direkt ein else, also so:
If (){System... else {...}...}

Aussehen solte es aber so:
If (){}else {}

Lösung:

public void methode ()
{
if (bmi < 18,5)
{
...}
else if (bmi > 20){
...}
else
{...}

(Habe das spezielle else-if Statement benutzt, ist das gleiche wie: else {if (){}})

Antwort
von ollu9, 86

Okay, hier das Bild :)

Kommentar von Coollin ,

Das ist ja klar :) Else bedeutet "sondern" Das letzte else, ist also immer gleich der ersten If-abfrage. Mach es mal ohne else, nur mit drei If abfragen :)

Kommentar von ollu9 ,

super Idee, leider ändert sich das Problem dadurch aber nicht..

Kommentar von Coollin ,

Ist das der komplette code? Sonst könnte es nämlich auch an etwas anderem liegen o:

Kommentar von ollu9 ,

aber sonst ist alles ja richtig..

Kommentar von varlog ,

Punkt statt Komma bei BMI < 18.5, dann sollte es gehen. Für die Übersicht wäre es m.M.n. besser richtiges else if zu nutzen statt ein zusätzliches if im else-Zweig. (Was ja syntaktisch das gleiche ist, aber ich denke du weißt was ich meine)

und richtig einrücken

Kommentar von ollu9 ,

macht leider auch keinen Unterschied.. :D

Kommentar von varlog ,

Dann zeig mal bitte den kompletten Code

Kommentar von ollu9 ,

ich habs jetzt geschafft, man musste um das ganze Ding noch eine void drumpacken :)

Kommentar von SirNik ,

ich entschuldige mich für die Formatierung. Ich habe per app geantwortet und da geht die eigentliche Formatierung verloren. noch eine void rumpacken....... daran erkennt man, dass du wirklich noch blutiger anfänger bist..... in Java programmierst du in Klassen. aber alles, ausser Klassenvariablen, müssen innerhalb einer METHODE stehen. eine Methode hat einen rückgabetyp (z.b. int, double, etc). es gibt als "rückgabe"typ auch void, wobei das eig für keine rückgabe steht, also eine methode, die so aussieht: "public void hi ()" gibt nichts zurück. eine Methode die do aussieht: "public int zahl ()" gibt eine Ganzzahl zurück. auserdem frag ich mich: Du hast nach jeder System.out.println("") folgendes vergessen: ";"....ein ; (Semikolon) ist der Befehlsabschlunss in Java. Also nach jedem Befehl kommt ein ; hin. Und dann: if (){ System.out.println ("") else{... du machst ein else ohne eine if. deine if ist bis zum else nichz geschlossen, das ist auxh nicht richtig. so muss es heißen: if () {System.out....}else {if () {}else {}} besser ist es aber, wenn du dad else-if Statement nimmst: if () {...} else if () {...} else {...}

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten