Java: Das nächste Schaltjahr finden?
Hey,
ich habe eine Aufgabe wo ich das nächste Schaltjahr berechnen soll. Ich komme allerdings nicht weiter.
Hier der Code
3 Antworten
Du überprüfst aktuell nur ob das eingegebene Jahr ein Schaltjahr ist, das sollte soweit funktionieren.
Um das nächste Schaltjahr zu ermittlen würdest du eine Schleife benötigen, in der du das Jahr immer um 1 erhöhst, falls es kein Schaltjahr ist und dann nochmal prüfen. Hier sollte solange geprüft werden, bis ein Schaltjahr gefunden wurde.
Das könnte dann so aussehen:
int jahr = 2000;
while (true) {
if (naechsteSchaltjahr(jahr)) { // "== true" ist unnötig
print ("Das Jahr " + jahr + "ist das naechste Schaltjahr.");
break; // schleife verlassen
}
}
Genau, das ist nur zum testen, wollte die Zeile mit der Eingabe war mir zu viel zu tippen 😁
verstehe irgendwie nicht das problem, was funktioniert bei dir nicht?
Ich hab das schnell so probiert:
public class Main
{
public static void main(String[] args) {
int jahr = 2021; //Dein input
//System.out.println(jahr%4);
if (jahr % 4 == 0)
System.out.println(jahr + " ist ein schaltjahr, das nächste ist in " + (jahr+4));
else
System.out.println("nächste SJ ist: "+ (jahr + (4-(jahr%4))));
}
}
das if könnte man eigentlich sogar weg lassen, dient nur als "extra-text"
edit: damit mein ich, dass
System.out.println("nächste SJ ist: "+ (jahr + (4-(jahr%4))));
genügt, um das nächste schaltjahr herauszufinden
Das Problem ist er soll das nächste Jahr herausfinden auch wenn es kein Schaltjahr ist
sag dann bescheid, ob es funktioniert oder wenn du etwas nicht verstehst
Sorry für die Späte Antwort. Hat funktioniert. Vielen Dank!
Warum rufst Du in Zeile 6 die Funktion "einfach so" auf ohne ihr Ergebnis irgendwo zu speichern oder abzufragen? Das ist meiner Ansicht nach unnötig, da Du sie ja in der IF-Anweisung in Zeile 7 ohnehin noch einmal aufrufst.
Danke! Eine Frage. Warum hast du int jahr den Wert 2000 übermittelt? Dient das nur zur Probe?