Wenn ich 1997 als Jahreszahl angebe, wird mir trotzdessen, das 1997 kein Schaltjahr ist, angegeben, das es dies wäre.
Code:
Java:
importjavax.swing.JOptionPane;publicclassSchaltjahr{publicstaticvoidmain(String[]args){StringJahreszahl;doubleJahr;booleanSchaltjahr=false;booleanSchaltjahr2=false;booleanSchaltjahr3=false;Jahreszahl=JOptionPane.showInputDialog(null,"Geben sie die Jahreszahl an: ");Jahr=Double.parseDouble(Jahreszahl);Schaltjahr=(Jahr%4)==0;if(Schaltjahr=false){JOptionPane.showMessageDialog(null,"Ihr Jahr ist kein Schaltjahr");}elseif(Schaltjahr=true){Schaltjahr2=(Jahr%100)==0;}if(Schaltjahr2=false){JOptionPane.showMessageDialog(null,"Ihr Jahr ist ein Schaltjahr");}elseif(Schaltjahr2=true){Schaltjahr3=(Jahr%400)==0;if(Schaltjahr3=true){JOptionPane.showMessageDialog(null,"Ihr Jahr ist ein Schaltjahr");}else{JOptionPane.showMessageDialog(null,"Ihr Jahr ist kein Schaltjahr");}}}}
Ändere if (Schaltjahr = false) { und alle anderen Stellen, an denen du vergleichst, um in: if (Schaltjahr == false) { oder noch besser if (!Schaltjahr) {. Der Vergleichsoperator in Java ist == und nicht = (Zuweisung).
Stimmt.
Du solltest Dich nicht hauptsächlich auf das Resultat konzentrieren.
Java:
importjavax.swing.JOptionPane;publicclass start {publicstaticvoidmain(String[] args){boolean ok =false;while(!ok){try{String year =JOptionPane.showInputDialog(null,"Geben sie die Jahreszahl an: ");String tmp =isLeapYear(Integer.parseInt(year))?"":"K";JOptionPane.showMessageDialog(null, year +" ist "+ tmp +"EIN Schaltjahr");
ok =true;}catch(NumberFormatException e){JOptionPane.showMessageDialog(null,"Nur eine Jahreszahl eingeben!");}}}publicstaticbooleanisLeapYear(int year){return((year %4==0&& year %100!=0)|| year %400==0);}}
Dann versuch es zu verstehen.
Und warum hast Du nicht nachgefragt wenn Du es nicht verstanden hast?
Wer nicht fragt kommt nicht vorwärts.
Du machst hier dieselben Fehler wie bei den Vokalen.
Also hast Du die Hilfestellung nicht verstanden. Fragst nicht nach.
Und jemand sagt, dass Du nicht lernen willst.
Objektiv betrachtet hat das Kommentar also seine Berechtigung und ist nicht lächerlich.
Sind es denn nicht schon Monate? Deinen anderen Account kennt man doch. Und von dem stellst du 1 zu 1 die selbe Frage und machst weiterhin die selben Fehler, wobei dir viele User bereits mit dem Thema geholfen haben. Wenn das Zufall ist fress ich nen Besen. Wie gesagt, lern if-Anweisungen und du kommst mit deinen zukünftigen Programmen viel schneller vorwärts.
Ich hatte keinen anderen Account. Es kann daran liegen, dass ich mit einen Java-Buch lerne, und es deswegen die selben Aufgaben bzw. Fragen sind. Und ich versuche ja zu lernen. Und zu dem Problem von oben es erkennt jetzt zwar ob Schaltjahr oder nicht, aber gibt danach trzd immer "Das Jahr ist ein Schaltjahr" aus, wobei ich mir nicht erklären kann warum.
Dann versuche mein Codebeispiel zu verstehen.
Das Problem in Deinem Code ist die schlechte Verwendung von Bedingungen.
Du verwendest 3 boolean und unzählige if then else Bedingungen. Mein Beispiel erledigt die Bedingung in einem Funktionsaufruf : ( funktioniert )
Java:
publicstaticbooleanisLeapYear(int year){return((year %4==0&& year %100!=0)|| year %400==0);}
Versuche das zu verstehen und Du machst Fortschritte.