if verzweigung

SiDeu

Aktives Mitglied
:)Hallo Leute ich steh grad mal wieder total auf dem Schlauch bekomme die Verzweigung einfach nicht hin ;( kann mir bitte jemand meinen fehler sagen:)
Java:
		if (Geschlecht.equals("Männlich")) {
			BMI = Gewicht / (Größe * Größe);

			if (BMI < 20) 
				Ergebnis = "Sie sind Zu dünn Sie sind";
			
			if (BMI < 25) 
				Ergebnis = "Sie sind Normal Sie sind";
			
			if (BMI < 30) 
				Ergebnis = "Sie haben Übergewicht Sie sind";
			
			if (BMI > 40) 
				Ergebnis = "Sie sind Viel zu dick Sie sind";
		}

		
		
		if (Geschlecht.equals("Weiblich")) {
			BMI = Gewicht / (Größe * Größe) + 1;
		
			if (BMI < 19) 
				Ergebnis = "Sie sind Zu dünn Sie sind";
			
			if (BMI < 24) 
				Ergebnis = "Sie sind Normal Sie sind";
			
			if (BMI < 30) 
				Ergebnis = "Sie haben Übergewicht Sie sind";
			
			if (BMI > 40) 
				Ergebnis = "Sie sind Viel zu dick Sie sind";
	}
Es zeigt einfach immer Übergewicht an egal ob Männlich oder Weiblich oder welcher BMI
 

HimBromBeere

Top Contributor
Ja, weil wahrscheinlich alle Bedingungen erfüllt werden:
Java:
if (BMI < 20) 
    Ergebnis = "Sie sind Zu dünn Sie sind";
            
if (BMI < 25) 
    Ergebnis = "Sie sind Normal Sie sind";
            
if (BMI < 30) 
    Ergebnis = "Sie haben Übergewicht Sie sind";
            
if (BMI > 40) 
    Ergebnis = "Sie sind Viel zu dick Sie sind";
Wenn der BMI kleiner als 20 ist, sind alle bedingungen (außer der letzten) erfüllt, es wird also immer Ergebnis = Übergewicht ausgegeben. Du brauchst mal ein else zu deinem if...
Java:
if (BMI < 20) 
    Ergebnis = "Sie sind Zu dünn Sie sind";
            
else if (BMI >= 20 && BMI < 25) 
    Ergebnis = "Sie sind Normal Sie sind";
            
else if (BMI >= 25 && BMI < 30) 
    Ergebnis = "Sie haben Übergewicht Sie sind";
            
else if (BMI >= 40) 
    Ergebnis = "Sie sind Viel zu dick Sie sind";

[EDIT]Was ist übrigens, wenn der BMW zwischen 30 und 40 liegt? Das hast du nirgends berücksichtigt[/EDIT]
 
Zuletzt bearbeitet:
B

bone2

Gast
wenn etwas < 20 ist, ist es wohl auch < 30

[TIPP]variablen werden in lowerCamelCase geschrieben
benutze bei if immer Klammern, auch wenn es nur eine Aktion gibt[/TIPP]

@HimBromBeere

entweder else oder >= &&
beides ist doch redundant

Java:
if (BMI < 20) {
    Ergebnis = "Sie sind Zu dünn Sie sind";
}            
else if (BMI < 25) {
oder
Java:
if (BMI < 20) {
    Ergebnis = "Sie sind Zu dünn Sie sind";
}            
if (BMI >= 20 && BMI < 25) {
 
Zuletzt bearbeitet von einem Moderator:

langhaar!

Bekanntes Mitglied
Die Ausgabe "Sie sind" wird in jedem Fall ausgegeben. Also muss es nicht in jedem if ausgegeben werden sondern nur einmal ganz am Ende.

Java:
.
.
.
if (BMI > 40) 
       Ergebnis = "Sie sind Viel zu dick";
}

System.out.println("Sie sind");

Die Fälle < 30 und > 40 sind für Männer und Frauen analog. Es würde reichen, dei Abfragen nur einmal (ohne Bedingung weblich/männlich) zu machen.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Ähnliche Java Themen

Neue Themen


Oben