Wieso gibt die Methode eine falsche Ausgabe?

1 Antwort

Dein Code ist nicht ganz klar strukturiert, aber ich glaube dein Fehler ist, dass du nicht beachtet hast, dass nach dem return die ganzen anderen Konditionen gar nicht mehr angeschaut werden, also musst du die if-Statements ganz am Anfang schachteln, folgendermaßen:

private static boolean schaltJahr(int year) {
		if (((year) % 4) == 0) {
			if (((year) % 100) == 0) {
				if (((year) % 400) == 0) {
					return true;
				}
				return false;
			}
			return true;
		}
		return false;
	}

Das geht auch mit elseif, aber dann darfst du nicht in diese return einbauen, sondern du musst einen boolean in der Funktion machen, der mehrmals überschrieben werden kann und den am Ende zurückgeben.

Woher ich das weiß:Berufserfahrung – Programmierer