2010-05-11 12 views
6
public static void main(String[] args) { 
    int x = 1 + + + + + + + + + 2; 
    System.out.println(x); 
} 

Puedo compilar el método anterior. ¿Hay alguna explicación sobre el operador "+" múltiple permitido?Explicación sobre una instrucción Java

+0

Creo que solo trata a todos los + como 1 solamente. ¿Cuál es el resultado? – vodkhang

+0

Guau, tuve que compilar eso antes de creerlo. No tengo idea de por qué eso funciona. –

+0

@vodkhang - La salida es '3' –

Respuesta

11

Además, se repite el operador unary plus. Es equivalente a la siguiente:

int x = 1 + (+ (+ (+ (+ (+ (+ (+ (+ 2)))))))); 
3

La razón es que + puede actuar como un unario operator, similar a cómo - puede ser el operador de negación. Usted está encadenando un grupo de operadores unarios (con una última adición binaria).

0

Creo que trataron a todos esos más como el mismo +. Debido a que la salida es 3, por lo que no hay ninguna magia aquí

0

no obtienes ninguna excepción, funciona bien. Obtendrá la salida 3.

0

Su porque aunque sintácticamente puede parecer mal uso de '+', pero hay esta operación singular se repite.

Cuestiones relacionadas