Stringvergleich schlägt fehl

Hallo!

Ich studiere im ersten Semester Informatik auf Lehramt an der JKU in Linz und habe Anfangs noch Schwierigkeiten mit dem Programmieren, da ich das zum ersten Mal mache.

Meine Aufgabe ist, dass ich ein Programm zur Berechnung der Kalorien schreibe. Ich möchte gerne zwischen Männer und Frauen unterscheiden, da hier eine andere Formel nötig ist.
Leider funktioniert bei mir die unterscheidung nicht und ich komme immer zum gleichen Ergebnis egal ob ich für das Geschlecht m, f oder auch eine Zahl eingebe. Leider komme ich aber auf meinen Fehler nicht drauf :/
Wäre toll wenn mir von euch jemand einen Tipp zur Verbesserung geben könnte! :D

LG Julia

Java:
public class caloriescalculator {

	public static void main(String[] args) 
    {
		double caloriesM; // calories for male 
		double caloriesF; //caloreis for female 
		
		System.out.print("Enter your age: ");
		int age = Input.readInt();
		System.out.print("Enter your weight (kg): ");
		int weight = Input.readInt();
		System.out.print("Enter your heigh (cm): ");
		int heigh = Input.readInt();
		System.out.print("Enter your sex (f for female, m for male): ");
		char sex = Input.readChar(); 
		
		if ("f".equals(sex)) 
		{
				caloriesF=10*weight+6.25*heigh-5*age-161;
				
				System.out.print("You need ");
				
				System.out.print(caloriesF);
				
				System.out.print(" calories by day to keep your weight");
		}
		else  
		{
				
			caloriesM=10*weight+6.25*heigh-5*age+5;
		
		
		System.out.print("You need ");
		
		System.out.print(caloriesM);
		
		System.out.print(" calories by day to keep your weight");
		}
		}}
 
Zuletzt bearbeitet von einem Moderator:

Thallius

Top Contributor
Das dürfte daran liegen, dass ein char kein String ist. Probiere es mit

Java:
if(sex=='f')

Gruß

Claus
 
Zuletzt bearbeitet:

Joose

Top Contributor
Leider funktioniert bei mir die unterscheidung nicht und ich komme immer zum gleichen Ergebnis egal ob ich für das Geschlecht m, f oder auch eine Zahl eingebe. Leider komme ich aber auf meinen Fehler nicht drauf :/

Du liest ein char ein und willst diese mit einem String vergleichen leider funktioniert das so nicht.
Wandel den char in einen String um dann sollte es passen

Wäre toll wenn mir von euch jemand einen Tipp zur Verbesserung geben könnte! :D

Hat nicht direkt mit dem Code zu tun:
Bitte wähle in Zukunft besseren Titel für dein Thread aus, so das man gleich weiß ob man helfen kann oder nicht
Wenn du Code postest kontrolliere doch ob du nicht vielleicht Leerzeilen entfernen könntest, das erhöht den Lesefluss und stimmt Helfer freundlicher :)

Zu deinem Code kann man vorerst nur sagen:
Verwende statt 2 Variablen nur eine Variable für die Berechnung der Kalorien. Du kannst mit diesem Code sowieso nur für weiblich ODER männlich berechnen -> eine Variable bleibt immer uninitialisiert.
 

DarXun

Aktives Mitglied
Bitte wähle in Zukunft besseren Titel für dein Thread aus, so das man gleich weiß ob man helfen kann oder nicht

Was für einen Titel würdest du denn in diesem Fall wählen?
Kann man den Titel später noch ändern? Falls ja, weiß ich natürlich nicht, ob das in diesem Fall passiert ist, aber mMn ist "Stringvergleich schlägt fehl" doch aus ursprünglicher Annahme des TEs ein sehr passender Titel.

~DarXun
 

Joose

Top Contributor
Was für einen Titel würdest du denn in diesem Fall wählen?
Achtung: Der Titel war "Problem bei Unterscheidung" und wurde von mir schon geändert auf "Stringvergleich schlägt fehl".

Den Titel eines Thread sollte man gut wählen bevor man diesen erstellt :)
Viele Leute entscheiden schon anhand dessen ob sie reinschauen, außerdem ist es meist auch der 1.Eindruck und dieser zählt viel ;)
 

Ähnliche Java Themen

Neue Themen


Oben