Wieso gibt die Methode eine falsche Ausgabe?
Hallo,
Das ist die Method, die überprüft ob das Jahr ein Schaltjahr ist. Ich habe sie getestet und sie funktioniert richtig aber innehalb eine switch case statement doch nicht (Es wird immer true züruck gegeben) und deshalb wird die else Statement nie ausgeführt.
Ich verstehe es nicht wieso?
public static boolean schaltJahr(int year) {
if(year%400==0)
return true;
else if(year%100==0)
return false;
else if(year%4==0)
return true;
return false;
}
LG :)
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.