Guten Tag,
Schreiben Sie ein Programm, das eine Jahreszahl über einen grafischen Eingabedialog abfragt und dann ausgibt, ob das Jahr ein Schaltjahr ist.
Die Überprüfung können Sie mit folgenden Regeln durchführen:
Ein Jahr ist kein Schaltjahr, wenn die Jahreszahl nicht durch 4 teilbar ist.
Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist.
Es ist ebenfalls ein Schaltjahr, wenn die Jahreszahl gleichzeitig durch 4, durch 100 und durch 400 teilbar ist.
Ein Beispiel:
Das Jahr 1964 war ein Schaltjahr. Die Jahreszahl lässt sich durch 4, aber nicht durch 100 teilen.
Das Jahr 1900 war kein Schaltjahr. Die Jahreszahl lässt sich zwar durch 4 und auch durch 100 teilen, aber nicht durch 400.
Sie können für die Überprüfung der Teilbarkeit den Modulo-Operator % und if … else-Verzweigungen benutzen. Zur Erinnerung: Wenn eine Zahl x nicht glatt durch y teilbar ist, dann liefert der Ausdruck (x % y) einen Wert größer als 0.
Setzen Sie bei der Überprüfung der Teilbarkeit eine weitere Variable ein, die markiert, ob das Jahr ein Schaltjahr ist oder nicht. Werten Sie diese Variable am Ende des Programms aus und lassen Sie dann auf dem Bildschirm ausgeben, ob es sich um ein Schaltjahr handelt oder nicht.
Meine Lösung:
import javax.swing.*;
public class Schaltjahr {
public static void main(String[] args) {
int eingabe;
int zahl1 = 4;
int zahl2 = 100;
int zahl3 = 400;
eingabe = Integer.parseInt(JOptionPane.showInputDialog("Bitte geben Sie ein Jahr ein:"));
if( (eingabe % zahl1 ==0) && (eingabe % zahl2 !=0) || (eingabe % zahl1 == 0) && (eingabe % zahl2 == 0) && (eingabe % zahl3 == 0 ) ) {
System.out.println("Es ist ein Schaltjahr");
}
else {
System.out.println("Ihre Eingabe ist kein Schaltjahr!");
}
}
}
Es funktioniert, aber ich habe mir andere Bespiele angeschaut, die haben if - Verzweigung verschachtelt und eine boolesche Variable ins Spiel gebracht.
Danke!
Schreiben Sie ein Programm, das eine Jahreszahl über einen grafischen Eingabedialog abfragt und dann ausgibt, ob das Jahr ein Schaltjahr ist.
Die Überprüfung können Sie mit folgenden Regeln durchführen:
Ein Jahr ist kein Schaltjahr, wenn die Jahreszahl nicht durch 4 teilbar ist.
Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist.
Es ist ebenfalls ein Schaltjahr, wenn die Jahreszahl gleichzeitig durch 4, durch 100 und durch 400 teilbar ist.
Ein Beispiel:
Das Jahr 1964 war ein Schaltjahr. Die Jahreszahl lässt sich durch 4, aber nicht durch 100 teilen.
Das Jahr 1900 war kein Schaltjahr. Die Jahreszahl lässt sich zwar durch 4 und auch durch 100 teilen, aber nicht durch 400.
Sie können für die Überprüfung der Teilbarkeit den Modulo-Operator % und if … else-Verzweigungen benutzen. Zur Erinnerung: Wenn eine Zahl x nicht glatt durch y teilbar ist, dann liefert der Ausdruck (x % y) einen Wert größer als 0.
Setzen Sie bei der Überprüfung der Teilbarkeit eine weitere Variable ein, die markiert, ob das Jahr ein Schaltjahr ist oder nicht. Werten Sie diese Variable am Ende des Programms aus und lassen Sie dann auf dem Bildschirm ausgeben, ob es sich um ein Schaltjahr handelt oder nicht.
Meine Lösung:
import javax.swing.*;
public class Schaltjahr {
public static void main(String[] args) {
int eingabe;
int zahl1 = 4;
int zahl2 = 100;
int zahl3 = 400;
eingabe = Integer.parseInt(JOptionPane.showInputDialog("Bitte geben Sie ein Jahr ein:"));
if( (eingabe % zahl1 ==0) && (eingabe % zahl2 !=0) || (eingabe % zahl1 == 0) && (eingabe % zahl2 == 0) && (eingabe % zahl3 == 0 ) ) {
System.out.println("Es ist ein Schaltjahr");
}
else {
System.out.println("Ihre Eingabe ist kein Schaltjahr!");
}
}
}
Es funktioniert, aber ich habe mir andere Bespiele angeschaut, die haben if - Verzweigung verschachtelt und eine boolesche Variable ins Spiel gebracht.
Danke!