Logik in if-Bedingung

Status
Nicht offen für weitere Antworten.

kwonilchang

Aktives Mitglied
Hallo!

Habe ein Programm geschrieben, dass ein paar Kalenderfunktionen bereit stellt. Mein Problem sind nun einige if-Bedingungen, die ich vereinfachen/entfernen soll.

Zuerst soll es aber mal eine Benutzereingabe überprüfen, ob die ein korrektes Datum darstellt.

Code:
boolean pruefeEingabe(int tag, int monat, int jahr) {
 28 
 29         if (jahr >= 1 && monat >= 1 && monat <= 12 && tag >= 1
 32                 && tag <= tageDesMonats(monat, jahr)) {
 33             return true;
 34         } else {
 35             return false;
 36         }
 37 
 38     } // pruefeEingabe

Es soll also geprüft werden, ob das Jahr > 1, der Monat zwischen 1 und 12 und und der Tag für den eingegebenen Monat/Jahr korrekt ist. Anscheinden lässt sich die if-Bedingung vereinfachen; ich komm nur nicht drauf, wie, da die Bedingungen für ein korrektes Datum ja erforderlich sind.

Code:
boolean pruefeDatum1582(int tag) {
 47 
 48         if (tag >= 5 && tag <= 14) {
 49             return false;
 50         } else {
 51             return true;
 52         }
 53 
 54     } // pruefeDatum1582

Diese Methode soll überprüfen, ob ein spezielles Tagesdatum korrekt ist. Dies wäre der Fall, wenn es entweder zwischen 1 und 4 oder zwischen 15 und 31 liegt. Hier ist ebenfalls die if-Bedingung zu vereinfachen.

Code:
boolean pruefeSCHALTjahr(int jahr) {
 62 
 63         if (jahr > 1582 && jahr % 400 == 0) {
 64             return true;
 65         } else if (jahr > 1582 && jahr % 4 == 0 && jahr % 100 != 0) {
 66             return true;
 67         } else if (jahr <= 1582 && jahr % 4 == 0) {
 68             return true;
 69         } else {
 70             return false;
 71         }
 72 
 73     } // pruefeSCHALTjahr

In dieser Methode soll überprüft werden, ob ein Jahr ein Schaltjahr war. Die Berechnung erfolgt korrekt, aber in Zeile 67 kann ebenfalls die if-Bedingung vereinfacht/entfernt werden. Ich denke aber mal, dass die erforderlich ist, da für Jahre vor 1582 nur jedes 4. Jahr ein Schaltjahr war...

Ich weiß einfach nicht, wie ich die if-Bedingungen ändern soll. Vielleicht überseh ich ja einfach nur was. Kann mir da jemand nen Tipp geben?

Danke schonmal...
 

Murray

Top Contributor
Anstelle von
Code:
if ( <irgendein Boole'scher Ausdruck>) {
 return true;
}else {
 return false;
}
kann man einfache schreiben
Code:
return <irgendein Boole'scher Ausdruck>;

Also: aus
Code:
29         if (jahr >= 1 && monat >= 1 && monat <= 12 && tag >= 1
32                 && tag <= tageDesMonats(monat, jahr)) {
33             return true;
34         } else {
35             return false;
36         }

wird
Code:
29         return  jahr >= 1 && monat >= 1 && monat <= 12 && tag >= 1 && tag <= tageDesMonats(monat, jahr);

Im zweiten Fall ist das so ähnlich; hier muss nur die Beding negiert werden; aus
Code:
48         if (tag >= 5 && tag <= 14) {
49             return false;
50         } else {
51             return true;
52         }

wird also
Code:
48         return !(tag >= 5 && tag <= 14);
oder auch
Code:
48         return tag < 5 || tag >14;

Den dritten Fall kriegst Du selber raus.
 

kwonilchang

Aktives Mitglied
Hallo Murray,

danke für Deine Antwort. Das mit dem return wusste ich bisher noch nicht. Hab es gleich mal ausprobiert. Funktioniert wunderbar. Den dritten Fall hab ich auch rausbekommen :) .

Viele Grüße,

kwonilchang
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Tic Tac Toe Logik kürzer fassen Java Basics - Anfänger-Themen 8
I Logik Zahlungsprozess - Wann Bestellobjekt anlegen? Java Basics - Anfänger-Themen 2
H Logik Fehler erkennen Java Basics - Anfänger-Themen 21
M Kann mir jemand hier die Logik vermitteln? Java Basics - Anfänger-Themen 3
M Kann mir jemand die Logik erklären? Java Basics - Anfänger-Themen 1
Hias12345 Schach(Springer Logik) Java Basics - Anfänger-Themen 27
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
B Logik Upgrade / Downgrade Java Basics - Anfänger-Themen 13
I Hilfe bei der Logik Java Basics - Anfänger-Themen 9
A Minesweeper Logik Java Basics - Anfänger-Themen 10
D Logik von GUI trennen Java Basics - Anfänger-Themen 3
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
Z GUI und Logik - Trennung Java Basics - Anfänger-Themen 2
H Logik Frage Java Basics - Anfänger-Themen 3
X Methoden Logik-Problem mit Schleifen. Java Basics - Anfänger-Themen 7
kaoZ Logik und Gui trennen Java Basics - Anfänger-Themen 3
S Logik knobeln... Java Basics - Anfänger-Themen 4
G Klassen Von Logik auf TextField in der GUI zugreifen Java Basics - Anfänger-Themen 14
V Verstehe die Logik nicht ... Java Basics - Anfänger-Themen 30
S OOP Trennung der GUI von der Logik Java Basics - Anfänger-Themen 11
F While Schleife - Logik ? Java Basics - Anfänger-Themen 5
B Logik von verschachtelten For Schleifen Java Basics - Anfänger-Themen 6
Luk10 Logik/Mathe Problem Java Basics - Anfänger-Themen 6
M Logik in Java Java Basics - Anfänger-Themen 4
K java.util.ConcurrentModificationException problem in der Logik? Quaxli-Tutorial Java Basics - Anfänger-Themen 9
S Frage zu Verständnis und Logik Java Basics - Anfänger-Themen 5
L Wie Trennung von Logik und Ausgabe? Java Basics - Anfänger-Themen 6
T Hilfe - Ein Logik Problem Java Basics - Anfänger-Themen 17
sliwalker Wie löse ich eine "DfB-Pokalauslosung"?Logik fehlt Java Basics - Anfänger-Themen 5
T Problem mit der Logik von Switch und do-while Java Basics - Anfänger-Themen 3
G die Logik für eine Buchung! Java Basics - Anfänger-Themen 3
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
Lion.King if-Bedingung Java Basics - Anfänger-Themen 3
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
A Dividieren mit Bedingung? Java Basics - Anfänger-Themen 7
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
Dimax Collections groupingBy mit Bedingung Java Basics - Anfänger-Themen 11
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
F Bedingung für Eingabe Java Basics - Anfänger-Themen 2
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
Hanschyo If Bedingung Fehler Java Basics - Anfänger-Themen 7
T Komischer Fehler mit einer if-Bedingung Java Basics - Anfänger-Themen 3
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
E if-Bedingung mit mehreren Möglichkeiten ? Java Basics - Anfänger-Themen 6
S DefaultTableCellRenderer mit Bedingung Java Basics - Anfänger-Themen 1
J Fehler abfangen mit einer Bedingung Java Basics - Anfänger-Themen 3
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
L Methoden if Bedingung trotz Erfüllung, nicht angesprochen Java Basics - Anfänger-Themen 12
P Compiler-Fehler if Bedingung fehlerhaft Java Basics - Anfänger-Themen 7
X Schleife bis "Bedingung" ausführen Java Basics - Anfänger-Themen 13
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
M Erste Schritte if-Bedingung schlägt fehl Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
Ocram Variablen Vereinfachung einer Bedingung Java Basics - Anfänger-Themen 18
J Can't find symbol - Erstellung eines Objekts in if-Bedingung Java Basics - Anfänger-Themen 3
M Frage zu if-Bedingung Java Basics - Anfänger-Themen 1
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
R for-Schleife bei erfüllter Bedingung beenden Java Basics - Anfänger-Themen 7
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
S if bedingung - Stunde und Minute vergleichen Java Basics - Anfänger-Themen 5
K If-Bedingung mit Wertzuweisung Java Basics - Anfänger-Themen 2
J Vererbung If-Bedingung im Konstruktor Java Basics - Anfänger-Themen 15
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
T if Bedingung Java Basics - Anfänger-Themen 16
MiMa for Schleife Bedingung Java Basics - Anfänger-Themen 4
M in jTable schreiben unter Bedingung Java Basics - Anfänger-Themen 3
J Erste Schritte Kurze Frage zu Listenern und If-Bedingung Java Basics - Anfänger-Themen 2
N Verifikation einer if-Bedingung Java Basics - Anfänger-Themen 9
P Variablen ArrayList mit Bedingung iterieren Java Basics - Anfänger-Themen 2
E if(Bedingung) Java Basics - Anfänger-Themen 9
L Erste Schritte Sollte ich hier lieber Cases verwenden oder wäre eine If-Bedingung besser? Java Basics - Anfänger-Themen 6
Anfänger2011 Wie bricht man alles ab wenn eine Bedingung nicht erfüllt ist? Java Basics - Anfänger-Themen 21
P Variablen Variable in if Bedingung anlegen, Wert zuweisen und diesen als Bedingung nutzen Java Basics - Anfänger-Themen 4
M Und Bedingung Java Basics - Anfänger-Themen 17
N Bedingung für Datentypen Java Basics - Anfänger-Themen 3
E if-Bedingung funktioniert nicht Java Basics - Anfänger-Themen 9
W Funktionsaufruf nach Bedingung Java Basics - Anfänger-Themen 3
S for schleife mit if bedingung Java Basics - Anfänger-Themen 21
S return(Bedingung) ? [mehrere Befehle] Java Basics - Anfänger-Themen 5
2 Bedingung bei Schleife Java Basics - Anfänger-Themen 23
E Methode in der Bedingung Java Basics - Anfänger-Themen 11
E if Bedingung Java Basics - Anfänger-Themen 4
H Sortierung eines String[][] mit Bedingung Java Basics - Anfänger-Themen 7
H Bedingung while-Schleife | integer number too large Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben