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 😛 aber beim programmieren wäre die zweite natürlich kürzer..

Vielen Dank im Voraus 🙂

NobodyGER
 
Zuletzt bearbeitet:
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:
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.
 
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:
Hm also ist es wohl wirklich reine Geschmackssache..
Das mein Beispiel nicht sonderlich einfallsreich war ist mir schon klar 😀 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 😉
 
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 😳

[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:
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.
 

Zurück
Oben