2010-12-16 13 views
5

Se si guarda allaQuale è meglio sintassi java: if (isSomething() == false) {{o se

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

Sembra x è meglio, ma

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

si può facilmente sorvegliare il!

Cosa fare? C'è una raccomandazione?

+0

Alcune delle risposte in questa domanda risolvono questo problema. http://programmers.stackexchange.com/questions/12807/make-a-big-deal-out-of-true – Ishtar

risposta

12

La terza opzione nascosta consiste nel denominare correttamente le variabili e i metodi.

Invece di

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

uso

if (isEnabled()) { 
    ... 
} 

o se si desidera controllare per il negativo:

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

o aggiungere entrambi i metodi:

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

Modifica: Ho trovato questa domanda: Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?

+0

+1 sì, penso che tu abbia un la funzione è meglio farla che controlli se il valore restituito è vero più se non è falso, come: if (isEnabled()) {} – Pietro

7

Vorrei attenermi alla notazione if (!isSomething()) {. Se tu o altri avete difficoltà a leggere, potete sempre aggiungere un po 'di spazio bianco attorno al'! ' per farlo risaltare:

if (! isSomething()) { o if (!isSomething()) {

Inoltre, più istruzioni condizionali può diventare schiacciante con la seguente notazione

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

mentre la sua alternativa è breve e concisa. Dopo un po 'diventa naturale leggere il'! ' insieme con le dichiarazioni come "non è Qualcosa() e non èSomethingElse()".

+0

+1 per gli spazi intorno a "!" trucco, non ho mai pensato di farlo, ma può essere utile :) – LaGrandMere

3

Non penso ci sia alcuna raccomandazione che tutti avrebbero seguito.

fare a modo tuo, personalmente, avrei scelto il if (!isSomething()) stile :)

Soprattutto perché ho già scelto lo stile if (!x).

+0

+1 per l'argomento di coerenza. Com'on, LaGrandMere, quasi 1000;) – VonC

+0

@VonC: grazie amico, ho finito i primi 1000 punti :) – LaGrandMere

+0

sì, eccellente! Ora se riesci a perdere il "Ciao!";) e ti troverai più in sintonia con lo spirito di questo sito di domande e risposte (solo sulle risposte) – VonC

2
if (!isSomething()) { 

sarebbe il migliore a mio parere. In questo modo stai tenendo il conto alla rovescia, il tuo codice è leggibile e quello ! si sporge all'inizio, quindi basta sfogliare il codice, altri possono vedere la sua intenzione.

Problemi correlati