Warum funktioniert dieser Java Code nicht (Alter berechnen)?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
int subtraktionsvariable;

musst du zu

int subtraktionsvariable = 0;

machen.

Dann ist "subtraktionsvariable" initialisiert.

Das sagt die Fehlermeldung doch... Weise deinem Variablen direkt einen Wert zu wenn du sie definierst, dann bekommst du solche Fehlermeldungen nicht

Woher ich das weiß:Berufserfahrung – Anwendungsentwickler

DieNudel82 
Beitragsersteller
 11.11.2020, 21:07

was meinst du mit direkt zuweisen? Wenn ich das mache dann habe ich meine Aufgabe nicht erfüllt. Es muss unter diesen if Bedingungen stattfinden

DoWhileTrue  11.11.2020, 22:11
@DieNudel82

Das macht zwar keinen Sinn, geht aber auch. 'subtraktionsvariable' muss in jedem Fall einen Wert haben, bevor du mit ihr rechnen kannst/darfst. Du musst dir also deinen Code ansehen, und nachsehen in welchem Fall die Variable nie einen Wert bekommt (das passiert in deinem allerletzten 'else'-Fall. Du machst dort eine erneute if-Abfrage, aber wenn die fehl schlägt hast du keinen else-Fall, und 'subtraktionsvariable' erhält in diesem Fall nie einen Wert).

Deswegen initialisiert man normalerweise direkt eine Variable mit einem default-Wert (wie zB '0'), damit es erst gar nicht so weit kommen kann dass die Variable keinem Wert hat

"variable subtraktionsvariable might not have been initialized"

Steht da. Es gibt mindestens einen Fall, in dem subtraktionsvariable keinen Wert zugewiesen bekommt. Du verwendest diese Variable aber nachher - und das deutet auf einen unbewussten Logikfehler hin.


DieNudel82 
Beitragsersteller
 11.11.2020, 21:00

Ich.

Weiß.

Wie kann man es korrigieren?

alfredo153  11.11.2020, 21:02
@DieNudel82

Indem du einen Wert zuweist. Logo, oder? Du musst ja eine Idee haben, welchen Wert die Variable haben soll.

DieNudel82 
Beitragsersteller
 11.11.2020, 21:28
@alfredo153

was meinst du mit direkt zuweisen? Wenn ich das mache dann habe ich meine Aufgabe nicht erfüllt. Es muss unter diesen if Bedingungen stattfinden

regex9  12.11.2020, 02:27
@DieNudel82

Wo/wie du das machst, ist dem Compiler ziemlich egal, so lange du

  • dich an die Syntaxregeln hältst
  • die Variable noch vor Nutzung irgendeinen expliziten Wert erhalten hat