Best Practice Stilistische Anwendung von if/else-Abfragen

NobodyGER

Mitglied
Hey Leute,

ich habe nur ein stilistisches Problem (es geht um die nachfolgende if-Abfrage in der Methode isFalse()):

Sollte man eine if-Abfrage so implementieren?:

Java:
public class Example {
    private boolean wert = true;
    
    public static void main(String[] args) {
        Example test = new Example();
        System.out.println(test.isFalse());
    }
    
    public boolean isFalse() {
        if (wert) {
            return false;
        } else {
            return true;
        }
    }
}

Oder ist das hier genauso gut/schlechter/besser programmiert?
Java:
public class Example {
    private boolean wert = true;
    
    public static void main(String[] args) {
        Example test = new Example();
        System.out.println(test.isFalse());
    }
    
    public boolean isFalse() {
        if (wert) {
            return false;
        }
        return true;
    }
}

Mir persönlich kommt die zweite Variante "unschöner" vor als die erste :p aber beim programmieren wäre die zweite natürlich kürzer..

Vielen Dank im Voraus :)

NobodyGER
 
Zuletzt bearbeitet:

Lars789852

Aktives Mitglied
Hallo,

also ich persönlich würde
Code:
return !wert;
schreiben :)

Und ich würde das else mit reinnehmen, einfach der Vollständigkeit halber.
 
Zuletzt bearbeitet:

mfernau

Bekanntes Mitglied
Das ist ja wirklich eine Geschmacksfrage.
Es kann aber durchaus einen Unterschied zwischen diesen beiden Varianten geben. Bei Deiner einfachen Darstellung vielleicht nicht gerade, aber stellen wir uns mal vor, Du implementierst eine ziemlich lange Methode anfänglich so:
Java:
public Foo bar() {
   if(sonstwas) {
      // schlaue Sachen...
      // ....
      // endlose Zeilen später
      return ergebnis;
   } else {
      // schlaue Sachen Teil 2...
      // ....
      // wieder endlose Zeilen später
      return anderesErgebnis;
   }
}

Jetzt vergehen die Monde und Du veränderst irgend etwas an Deinem Code. Vielleicht hast Du den Kern der Else-Methode schon vergessen und entwickelst in Deinem Code im IF-Zweig irgend was neues. Dabei entfernst Du sogar den Return-Teil, weil du einfach was testen willst oder gar nicht daran denkst, dass Du auch etwas returnen müsstest.
Implementierst Du den else-Zweig wie oben geschildert, würdest Du nun einen Fehler erhalten, denn in Deinem IF gibt es kein return. Würdest Du aber ohne den Else-Zweig implementieren, würde es Dir nicht auffallen, da später noch ein Return kommt.

Es ist weit her geholt - aber ich fand es mal erwähnenswert.
 

Matt

Aktives Mitglied
Also persönlich mache ich das selten (aber ich tu es) das ich ein return irgendwo mitten in der Methode mache obwohl mir jahrelang von Lehrern, Dozenten, Professoren und Vorgesetzten/Arbeitgebern gesagt wurde, das eine Methode nur ein "echtes" return haben sollte.

Aber wenn es erstmal nur um die Lösung geht bin ich eher der Typ folgender Methoden:
Java:
public boolean isFalse(Object whatever) {
	return !(Bedingung für whatever);
}

Java:
public boolean isFalse(Object whatever) {
	return (Bedingung für whatever) ? false : true;
}
Java:
public boolean isFalse(Object whatever) {
	if (Bedingung für whatever) {
		return false;
	}
		
	return true;
}
 
Zuletzt bearbeitet:

NobodyGER

Mitglied
Hm also ist es wohl wirklich reine Geschmackssache..
Das mein Beispiel nicht sonderlich einfallsreich war ist mir schon klar :D ich wollte nur die Problematik darstellen ;)

Ich denke ich werde dann das else lieber mit anfügen damit es einheitlicher ist :)

Vielen Dank an euch ;)
 

Shulyn

Bekanntes Mitglied
Das ist Persönlicher geschmack.
Wenn man in Projekten mit anderen Entwicklern arbeitet, so werden solche "feinheiten" meist festgelegt! Sprich die Entwickler folgen alle einem Code Style. Dieser wird vorgegeben oder von den Entwicklern selbst mit entschieben...

So klärt sich schnell auch die frage nach leerzeichen hinter den Klammer, oder ob man die Klammern in einem einzeiligen IF schreiben muss :oops:

[Java]
if(true)
return false;

if(true){ return false; }

if(true){
return false; }

if (true) {
return false;
}
[/Java]

Auch Lesbarkeit des Codes oder die Länge von Zeilen / anzahl der Zeilen spielt dabei eine Rolle...
Shu
 
Zuletzt bearbeitet:

BuckRogers

Bekanntes Mitglied
Wenn ich mal meine Programmierprofessorin rezitieren dürfte:

"Es ist eine Blockanweisung und Blockanweisungen gehören in geschweifte Klammern. Das ist ein Standard. Diese sind dazu da um Dinge zu vereinheitlichen und zukünftige Fehlerquellen zu vermeiden."

Also ich schreibe aus Erfahrung auch eher die Blockanweisungen in Klammern. Es ist, wie mfernau schon meinte, einfach übersichtlicher für Jedermann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Stilistische Fragen zu Klassenaufbau und Namengebung Java Basics - Anfänger-Themen 13
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
I Java FX GUI Anwendung Java Basics - Anfänger-Themen 30
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
G MapStruct Anwendung vom selbst geschriebenen Formater Java Basics - Anfänger-Themen 4
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
S If Anwendung Java Basics - Anfänger-Themen 1
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
J Datentypen Anwendung von String contains Java Basics - Anfänger-Themen 4
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
R If anwendung funktioniert nicht Java Basics - Anfänger-Themen 3
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
A Testprogramm in java oder javascript für Windows Anwendung? Java Basics - Anfänger-Themen 1
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
S JUnit - Swing- Anwendung wird nicht neu gestartet Java Basics - Anfänger-Themen 0
R Best Practice Problem Anwendung umzusetzen Java Basics - Anfänger-Themen 2
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Anwendung Startet nur in Vergangenheit Java Basics - Anfänger-Themen 11
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
C Java-Anwendung im Browser zoomen Java Basics - Anfänger-Themen 1
C Anwendung generischer Typparamter auf ArrayList Java Basics - Anfänger-Themen 2
I Externes konsolen Anwendung (.exe) starten Java Basics - Anfänger-Themen 2
E Classpath SecSigner in WebStart-Anwendung Java Basics - Anfänger-Themen 3
E mit java-anwendung internet verbindung unterbrechen Java Basics - Anfänger-Themen 5
L Verbindung von Anwendung mit GUI Java Basics - Anfänger-Themen 6
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
W Rekursion Anwendung Java Basics - Anfänger-Themen 16
FreeFun Java Anwendung beenden Java Basics - Anfänger-Themen 7
S Reale Anwendung der OOP Java Basics - Anfänger-Themen 33
B Seltsamer Fehler in SWING anwendung Java Basics - Anfänger-Themen 2
M Anwendung Schreibrechte geben Java Basics - Anfänger-Themen 13
M Anwendung als Webstart ausführen Java Basics - Anfänger-Themen 4
G Erste Schritte von Eclipse zur Anwendung: Programme auf anderen Rechnern zum Laufen bringen Java Basics - Anfänger-Themen 4
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
M Anwendung in verschiedenen JREs Java Basics - Anfänger-Themen 42
A Hilfe bei Anwendung erstellen Java Basics - Anfänger-Themen 2
J GUI für Java-Anwendung erzeugen Java Basics - Anfänger-Themen 7
U Rechte bei JAVA-Anwendung? Java Basics - Anfänger-Themen 8
JAVAnnik Anwendung nach Schließen vom letzen Frame Java Basics - Anfänger-Themen 9
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
L Benutzerdefinierte Anwendung starten Java Basics - Anfänger-Themen 5
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
Steve5000 Externe Batch-Datei starten und anwendung beenden?! Java Basics - Anfänger-Themen 4
StrikeTom Problem mit regex(-anwendung) Java Basics - Anfänger-Themen 10
D Frage zu Collection und deren Anwendung Java Basics - Anfänger-Themen 2
P Java Anwendung mit mehr RAM starten?? Java Basics - Anfänger-Themen 5
N Favicon in meiner Anwendung Java Basics - Anfänger-Themen 9
Error257 Doppelklick-Anwendung Java Basics - Anfänger-Themen 6
A JBoss-Anwendung soll im Singleton-Mode laufen Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
Dit_ invokeLater | richtige Anwendung Java Basics - Anfänger-Themen 2
H Datei einlesen in einer MVC Anwendung Java Basics - Anfänger-Themen 3
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
M MergeSort - Threads in Anwendung bremsen alles! Java Basics - Anfänger-Themen 4
C0FFEE Anwendung soll eigenen Dateinamen referenzieren Java Basics - Anfänger-Themen 13
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
D Das Ausführen einer Java Anwendung auf versch Systemen... Java Basics - Anfänger-Themen 5
F u.a. Ressourcen begrenzung für Java-Anwendung Java Basics - Anfänger-Themen 5
X Konfiguration einer Anwendung aus mehreren Dateien Java Basics - Anfänger-Themen 11
K JAVA-Anwendung startet nicht Java Basics - Anfänger-Themen 7
P Output einer anderen Anwendung verwenden Java Basics - Anfänger-Themen 7
M (Sub-)Anwendung schließen aus JMenu Java Basics - Anfänger-Themen 6
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3
harrli Markierten Text einer anderen Anwendung ermitteln Java Basics - Anfänger-Themen 10
Y Preferences / Properties Anwendung plattformunabhängig Java Basics - Anfänger-Themen 4
B Java-Anwendung im Windows Design Java Basics - Anfänger-Themen 8
G Polymorphismus und die richtige Anwendung Java Basics - Anfänger-Themen 6
J java anwendung starten - wie? Java Basics - Anfänger-Themen 7
M Handy Java Anwendung Java Basics - Anfänger-Themen 8
D Beim Schließen eines Dialogs die Ganze Anwendung schließen ? Java Basics - Anfänger-Themen 7
T Desktop Anwendung Aufbau Java Basics - Anfänger-Themen 5
G Bild von Anwendung Java Basics - Anfänger-Themen 3
E Problem mit der parallelen Anwendung Java Basics - Anfänger-Themen 11
J Anwendung von "this" Java Basics - Anfänger-Themen 4
N Fenster einer anderen Anwendung resizen? Java Basics - Anfänger-Themen 2
M Swing Anwendung - boolean schaltet automatisch auf true Java Basics - Anfänger-Themen 2
G Mehrsprachenfähigkeit in eine Anwendung integrieren Java Basics - Anfänger-Themen 2
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
A java-anwendung ohne jre starten Java Basics - Anfänger-Themen 8
G Version von Anwendung mit Eclipse oder anders festlegen Java Basics - Anfänger-Themen 8
D html in einer java-anwendung Java Basics - Anfänger-Themen 10
G Anwendung von try-catch Java Basics - Anfänger-Themen 10
G Anwendung beendet nicht. Java Basics - Anfänger-Themen 5
T Anwendung von Interfaces Java Basics - Anfänger-Themen 2
R Java als Anwendung Java Basics - Anfänger-Themen 6
G Anwendung findet vorhandene Klasse nicht Java Basics - Anfänger-Themen 4
T Wie ausführbare Anwendung erstellen Java Basics - Anfänger-Themen 2
G Hilfer zur einer Anwendung soll HTML Datei öffnen Java Basics - Anfänger-Themen 4
A Kommunikation Java-Anwendung <-> Java-Applet Java Basics - Anfänger-Themen 24
G Datum und Text in jede beliebige Anwendung einfügen Java Basics - Anfänger-Themen 3
ven000m Wieso antwortet mein Server nicht mehr (Socket Anwendung) Java Basics - Anfänger-Themen 2
D Aus Anwendung Zugriff auf ein Servlet Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben