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

Ich kann obige Methode kompilieren. Gibt es irgendeine Erklärung über den erlaubten multiplen "+" Operator?Erklärung über eine Java-Anweisung

+0

Ich denke, es behandelt nur alle + als nur 1. Was ist die Ausgabe? – vodkhang

+0

Wow, ich musste das selbst kompilieren, bevor ich es glaubte. Ich habe keine Ahnung, warum das funktioniert. –

+0

@vodkhang - Der Ausgang ist '3' –

Antwort

11

Es ist Addition, dann der unary plus Operator wiederholt. Es ist gleichbedeutend mit der folgenden:

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

Der Grund dafür ist, dass + als einstellige operator wirken kann, ähnlich wie - kann die Negation Operator. Sie verketten gerade eine Reihe von unären Operatoren zusammen (mit einer letzten binären Addition).

0

Ich denke, dass sie all diese Plus als das gleiche behandelt +. Weil die Ausgabe 3 ist, also gibt es hier überhaupt keine Magie

0

Sie erhalten keine Ausnahmen, es funktioniert gut. Sie erhalten Ausgabe 3.

0

Sein, weil obwohl syntaktisch kann es falsch scheinen Verwendung von ‚+‘, aber es gibt diese einstellige Operation wiederholt sich.

Verwandte Themen