Warum funktioniert dieser Java Code nicht (Alter berechnen)?

3 Antworten

Vom Fragesteller 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 
Fragesteller
 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

0
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

0
"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 
Fragesteller
 11.11.2020, 21:00

Ich.

Weiß.

Wie kann man es korrigieren?

0
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.

2
DieNudel82 
Fragesteller
 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

0
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
0