Compiler-Fehler Schaltjahr berechnen

stehlo

Mitglied
Hallo, ich habe folgende Aufgebenstellung:
"Schreibe eine Methode namens >istSchaltjahr< in der Klasse >Datum<, die ein Jahr als Zahl übernimmt und bestimmt, ob dieses Jahr ein Schaltjahr ist. Diese Methode soll true zurück geben, wenn das Jahr ein Schaltjahr ist, und false im anderen Fall."
Zu beachten ist:Jahre die durch 4 teilbar sind, sind Schaltjahre, außer wenn sie durch hundert teilbar sind, aber wenn sie durch 400 teilbar sind dann schon (also 2000 ist ein Schaltjahr,da es durch 400 teilbar ist, 2100 nicht.)

Das ganze soll ich auf zwei Methoden aufteilen, wobei eine nur Überprüft und die andere ausgibt.
Was ich bisher habe, wobei mein compiler in der for Schleife immer "not a statment" ausgibt:
Code:
import javax.swing.JOptionPane;

public class Datum
{
    public static boolean istSchaltjahr (int jahre){
       for(jahre; jahre>=400; jahre-=400){}          
        if ((jahre%4==0)&&(jahre%100!=0)){
            boolean abfrage=true;
            return abfrage;
        }
    }

        public static void main (String[] args){
        int eingabeJahr = JOptionPane.showInputDialog(null,"Bitte geben Sie ein Jahr an, welches auf ein Schaltjahr überprüft wird");
        ergebnis = Datum.istSchaltjahr(eingabeJahr);
        JOptionPane.showMessageDialog(null,ergebnis);

    }
}


Ich hoffe ihr könnt mir meine(n) Fehler sagen,
vielen Dank!
 

Kababär

Top Contributor
Deine For-Schleife ist falsch deklarierit:
Code:
 for(jahre; jahre>=400; jahre-=400){}
Hier hast du den Typ von 'jahre' vergessen, also int.
Dann hast du einen leeren Block '{}'. Dieser wird pro Schleifendurchlauf ausgefürt. Da dieser leer ist, passt hier nichts.

Not a statement bedeutet hier, dass die Syntax falsch ist. Eine For-Schleife erwartet als erstes eine Zuweisung, also etwa so:
Code:
 for(int i=jahre; i>=400; i-=400){}

Ich habe gedacht, es soll nur eine Zahl überprüft werden und nicht alle, die kleiner gleich dieser Zahl ist?


edit: Das heißt, du prüfst lediglich gar nicht, ob
Code:
jahre%400!=0
ist
 

stehlo

Mitglied
Ich habe die for Schleife gemacht, damit ich den Fall einberechne, dass die Zahl durch 400 aber auch durch hundert teilbar ist.

Also meine Überlegung war:
Bsp. Jahr 2400 wäre durch 100 teilbar, aber auch durch 400, ist also ein Schaltjahr -> also wird in der for Schleife nun einmal solange der Wert um 400 minimiert, sodass dann weiter überprüft werden kann.
Da nun immer der Wert nach Abzug minimiert wird erreicht dieser den Wert 0 und SOLLTE nach einer Änderung im Programm jetzt auch true zurückgeben

Das Programm läuft soweit, jedoch wenn ich wie im Beispiel genannt 2400 eingebe gibt es false aus. Alle Zahlen durch 400 stimmen nicht, der Rest glaub ich schon.

Hier mein aktueller Code:
Code:
import javax.swing.JOptionPane;

public class Datum
{
    public static boolean istSchaltjahr (int jahre){
        boolean abfrage;
        for(int i=jahre; i>=400; i-=400){}
        if (((jahre%4==0)||jahre==0)&&((jahre%100!=0)||jahre==0)){
            abfrage=true;
        }
        else{abfrage=false;}
        return abfrage;
    }

    public static void main (String[] args){
        String stringJahr = JOptionPane.showInputDialog(null,"Bitte geben Sie ein Jahr an, welches auf ein Schaltjahr überprüft wird");
        int eingabeJahr = Integer.parseInt(stringJahr);
        boolean ergebnis = Datum.istSchaltjahr(eingabeJahr);
        JOptionPane.showMessageDialog(null,ergebnis);

    }
}

Danke für die vorherigen Antworte, hoffe es kann mir wieder jemand weiterhelfen.
 

Kababär

Top Contributor
Das ist aber schlichtweg falsch.
Du solltest dir nochmal angucken wie genau ein Schaltjahr definiert ist und solltest das mit deiner if-Abfrage vergleichen.
Das 2400 false ausgibt, liegt daran:
Code:
(jahre % 100 != 0) || jahre == 0)
Wenn du dir nochmal die Definition anguckst, wirst du sehen, dass du eigentlich diese if-Abfrage benötigst:
Code:
if (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0))
und dann kommt auch das richtige Ergebnis raus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
J Schaltjahr Java Basics - Anfänger-Themen 6
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
R Schaltjahr problem Java Basics - Anfänger-Themen 10
P Schaltjahr: "sauberer" Code Java Basics - Anfänger-Themen 4
C Schaltjahr Java Basics - Anfänger-Themen 4
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
B Schaltjahr überprüfen (Code) Java Basics - Anfänger-Themen 4
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
G Schaltjahr Java Basics - Anfänger-Themen 6
W Schaltjahr abbrechen wenn <1583 Java Basics - Anfänger-Themen 11
W Schaltjahr Berechnung Java Basics - Anfänger-Themen 24
S schaltjahr (gelöst zu 90 %), allerdings folgeprob :/ Java Basics - Anfänger-Themen 18
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben