2011-07-28 13 views
16

En la línea de abajo donde se muestra return(!variable);, ¿qué le hace el signo de exclamación a la variable?Significado de! en la sintaxis de Java

return(!weekday || vacation); 
+4

Además de las respuestas, probablemente también lo encuentres útil: http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – biziclop

+5

No veo por qué esto se degrada. Para un novato, ESTO es difícil de buscar en Google. – helpermethod

+3

+1 para contrarrestar el signo menos. No veo nada malo con la pregunta. –

Respuesta

10

El ! es un operador NOT booleano, definido en Section 15.15.6 de la Especificación del lenguaje Java. Hace truefalse y falsetrue. Así que lo que está haciendo sentencia return devuelve un valor booleano que será true si bien weekday es false ("no entre semana") o (||) vacation es true. Será false si es weekdaytrue y vacation es false.

11

El carácter ! es la negación lógica. Su nombre formal es, creo, "lógicamente no". Lógicamente, !true == false y !false == true.

como el platino Azure dijo en los comentarios, este operador sólo se puede aplicar a boolean tipos.

+1

negation-- Específicamente lógico que es, si se le da un valor 'true' volverá' false', y si se le da un 'falso 'value devolverá' true'. Java no permite el uso del operador '!' En tipos que no son '' booleanos ''. –

+0

Operador de complemento lógico (Especificación de lenguaje Java 15.15.6) ¡Se aplica en los tipos 'boolean' Y' Boolean'! –

+0

@Carlos Con autoboxing y autounboxing, puede aplicar una gran cantidad de operadores a los tipos primitivo y de objeto. Por ejemplo, '+' se puede aplicar a 'Integer' como' integer'. Pero esa es una discusión completamente diferente. –

1

que significa cuando NOT weekday (false boolean). ! significa negación.

5

! significa la negación. Básicamente, "Ok, entonces todo lo que sigue, si es verdadero, devuelve falso, si es falso, devuelve verdadero". (! solo funcionará en booleanos en Java) En este caso, su devolución se convierte en:

devolver que no es un día laborable o que es vacaciones.

2

Todas las preguntas de su operador se pueden contestar en el Java tutorial.

+2

sí, pero Stackoverflow es mejor [:-) –

Cuestiones relacionadas