2010-12-16 4 views
5

Wenn man sichWas ist besser Java-Syntax: if (isSomething() == false) {oder wenn {

if (!x) { 
if (x == false) { 

Es sieht aus wie x ist besser, aber

(isSomething()!)!
if (!isSomething()) { 
if (isSomething() == false) { 

können Sie leicht übersehen!

Was ist zu tun? Gibt es eine Empfehlung?

+0

Einige der Antworten in dieser Frage adressieren dieses Problem. http://programmers.stackexchange.com/questions/12807/make-a-big-deal-out-of-true – Ishtar

Antwort

12

Die versteckte dritte Option besteht darin, Ihre Variablen und Methoden richtig zu benennen.

Statt

if (!isDisabled()) { 
    ... 
} 

Verwendung

if (isEnabled()) { 
    ... 
} 

oder wenn Sie wollen für die negative überprüfen:

boolean disabled = !isEnabled(); 
if (disabled) { 
    ... 
} 

oder beide Methoden hinzufügen:

boolean isDisabled() { 
    return !isEnabled(); 
} 

Bearbeiten: Ich habe die Frage gefunden: Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?

+0

+1 yep, ich denke, wenn Sie eine haben Funktion ist es besser zu machen, dass Sie überprüfen, ob der Rückgabewert wahr ist, mehr als wenn es nicht falsch ist, wie: if (isEnabled()) {} – Pietro

7

Ich würde mit der Notation if (!isSomething()) { bleiben. Wenn Sie oder andere es schwer finden zu lesen, können Sie immer ein kleines Leerzeichen um das '!' um es heraus stehen lassen:

if (! isSomething()) { oder if (!isSomething()) {

Des Weiteren mehrere bedingte Anweisungen mit der folgenden Notation überwältigend werden kann

if (isSomething() == false && isSomethingElse() == false && ..),

während seine alternative kurz und prägnant ist. Nach einer Weile wird es natürlich, das '!' zusammen mit den Aussagen als "nicht isSomething() und nicht isSomethingElse()".

+0

+1 für die Leerzeichen um "!" Trick, ich denke nie darüber nach, aber es kann nützlich sein :) – LaGrandMere

3

Ich glaube nicht, dass es eine Empfehlung gibt, der jeder folgen würde.

es auf deine Weise tun, persönlich, würde ich wählen, die if (!isSomething()) Stil :)

Vor allem, da ich die if (!x) Stil bereits gewählt haben.

+0

+1 für die Konsistenz Argument. Com'on, LaGrandMere, fast 1000;) – VonC

+0

@VonC: danke Kumpel, es ist fertig, ich habe meine ersten 1000 Punkte :) – LaGrandMere

+0

ja, ausgezeichnet! Jetzt, wenn Sie nur verlieren können "Hallo!";) und Sie werden eine bessere Passform mit dem Geist dieser Q & A-Website (nur über Antworten) – VonC

2
if (!isSomething()) { 

wäre meiner Meinung nach das beste. Auf diese Weise halten Sie die Zeichenanzahl niedrig, Ihr Code ist lesbar und ! steht am Anfang, also können Sie einfach durch das Durchforsten von Code seine Absicht sehen.

Verwandte Themen