Hi,
ich mache einen Java-Kurs und hatte die Aufgabe ein Programm zu erstellen, das eine Jahreszahl abfragt und ausgibt ob es sich um ein Schaltjahr handelt.
Meine Lösung zur Überprüfung ob das Jahr ein Schaltjahr ist sieht so aus:
Ich habe für die Aufgabe nur die halbe Punktzahl bekommen mit dem Kommentar, die Abfrage mit „|| jahr % 400 == 0“ sei nicht eindeutig.
Und jetzt verzweifle ich bald daran. Ich sehe einfach nicht, was uneindeutig sein soll.
Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist und dann nicht durch 100 oder sonst durch 400. Das sagt meine Verknüpfung doch aus?
Der einzigen Fehler, den ich sehe ist die völlig überflüssige Variable. Da hätte ich besser einfach
geschrieben. Das wird aber nicht bemängelt, sondern die logische Verknüpfung.
Das Programm gibt auch in allen Tests das richtige Ergebnis aus. Ich seh's einfach nicht. Könnt ihr mir auf die Sprünge helfen?
Jamie
ich mache einen Java-Kurs und hatte die Aufgabe ein Programm zu erstellen, das eine Jahreszahl abfragt und ausgibt ob es sich um ein Schaltjahr handelt.
Meine Lösung zur Überprüfung ob das Jahr ein Schaltjahr ist sieht so aus:
Java:
static boolean schaltjahr(int jahr) {
boolean ergebnis;
if (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0))
ergebnis = true;
else
ergebnis = false;
return ergebnis;
}
Ich habe für die Aufgabe nur die halbe Punktzahl bekommen mit dem Kommentar, die Abfrage mit „|| jahr % 400 == 0“ sei nicht eindeutig.
Und jetzt verzweifle ich bald daran. Ich sehe einfach nicht, was uneindeutig sein soll.
Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist und dann nicht durch 100 oder sonst durch 400. Das sagt meine Verknüpfung doch aus?
Der einzigen Fehler, den ich sehe ist die völlig überflüssige Variable. Da hätte ich besser einfach
Java:
return (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0))
Das Programm gibt auch in allen Tests das richtige Ergebnis aus. Ich seh's einfach nicht. Könnt ihr mir auf die Sprünge helfen?
Jamie