2011-07-28 15 views
16

Nella riga sottostante dove viene mostrato return(!variable); cosa fa il punto esclamativo alla variabile?Significato di! in Java sintassi

return(!weekday || vacation); 
+4

Oltre alle risposte probabilmente lo troverai anche questo: http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – biziclop

+5

Non vedo perché questo viene downvoted. Per un principiante, questo è difficile da cercare su Google. – helpermethod

+3

+1 per neutralizzare il segno meno. Non vedo nulla di sbagliato nella domanda. –

risposta

10

Il ! è un operatore booleano NOT, definito in Section 15.15.6 della specifica del linguaggio Java. Rende truefalse e falsetrue. Allora, cosa questa affermazione di ritorno sta facendo sta tornando un valore booleano che sarà true se siaweekday è false ("Non Giorno della settimana") o (||) vacation è true. Sarà false se weekday è true e vacation è false.

11

Il carattere ! è la negazione logica. Il nome formale è, credo, "logico non". Logicamente, !true == false e !false == true.

Come Platinum Azure detto nei commenti, questo operatore può essere applicato solo ai tipi boolean.

+1

In particolare negazione logica-- cioè, se viene dato un valore 'true' restituirà' false', e se viene dato un 'false 'valore restituirà' true'. Java non consente l'uso dell'operatore '!' Su tipi non 'boolean'. –

+0

Operatore di complemento logico (Specifica linguaggio Java 15.15.6) È applicabile ai tipi 'boolean' e' Boolean'! –

+0

@Carlos Con autoboxing e autounboxing, è possibile applicare molti operatori sia ai tipi di oggetti primitivi che a quelli di oggetti. Ad esempio, '+' può essere applicato a 'Integer' proprio come' integer'. Ma questa è una discussione completamente diversa. –

1

Significa quando NOT weekday (booleano falso). ! indica la negazione.

5

! significa negazione. Fondamentalmente, "Ok, qualsiasi cosa segua, se è vera, restituisce false, se false restituisce true." (! funzionerà solo su booleane in Java) In questo caso, il tuo reso diventa:

ritorno che non è un giorno feriale o che è vacanza.

2

Tutte le domande dell'operatore possono essere risolte allo Java tutorial.

+2

sì, ma Stackoverflow è meglio [:-) –