2011-07-28 9 views
16

W wierszu poniżej, gdzie pokazuje return(!variable);, co robi wykrzyknik do zmiennej?Znaczenie! w składni Java

return(!weekday || vacation); 
+4

Oprócz odpowiedzi prawdopodobnie również uznasz to za użyteczne: http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – biziclop

+5

Nie widzę powodu, dla którego zostanie on odrzucony. Dla początkujących trudno jest wyszukiwać w Google. – helpermethod

+3

+1, aby zrównoważyć minus. Nie widzę niczego złego w tym pytaniu. –

Odpowiedz

10

! jest boolowskim operatorem NOT, zdefiniowanym w Section 15.15.6 specyfikacji języka Java. Tworzy ona true i false . Więc co to robi return zwraca wartość logiczną, która będzie true jeśli alboweekday jest false („nie dzień powszedni”) lub (||) vacation jest true. Będzie to false, jeśli weekday jest i.

11

Znak ! jest logiczną negacją. Formalna nazwa jest, jak sądzę, "logiczna nie". Logicznie, !true == false i !false == true.

Podobnie jak w komentarzach Platinum Azure, ten operator może być stosowany tylko do typów boolean.

+1

W szczególności logiczna negacja - to znaczy, jeśli podana wartość "true" zwróci wartość "false", a jeśli zostanie podane "false" 'wartość zwróci wartość" prawda ". Java nie zezwala na użycie operatora '!' Na typach innych niż "boolean". –

+0

Operator logicznego uzupełniania (specyfikacja języka Java 15.15.6) Obowiązuje dla typów 'boolean' AND' Boolean'! –

+0

@Carlos Dzięki autoboxing i automatounboxing można zastosować wiele operatorów zarówno do typów pierwotnych, jak i obiektów. Na przykład '+' można zastosować do 'Integer' podobnie jak' integer'. Ale to zupełnie inna dyskusja. –

1

Oznacza to, gdy NOT weekday (boolean false). ! oznacza negację.

5

oznacza negację. Zasadniczo "Ok, więc cokolwiek następuje, jeśli to prawda, zwróć false, jeśli false return true". (! będzie działał tylko w języku logicznym w języku Java). W takim przypadku Twój zwrot stanie się następujący:

Zwróć, że nie jest to dzień tygodnia ani że jest to urlop.

2

Wszystkie pytania operatora można uzyskać pod numerem Java tutorial.

+2

tak, ale Stackoverflow jest lepszy [:-) –