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

Je peux compiler la méthode ci-dessus. Y a-t-il une explication sur l'opérateur "+" multiple autorisé?Explication d'une instruction Java

+0

Je pense qu'il traite seulement tous les + comme 1 seulement. Quelle est la sortie? – vodkhang

+0

Wow, j'ai dû compiler cela moi-même avant de le croire. Je n'ai aucune idée de pourquoi cela fonctionne. –

+0

@vodkhang - La sortie est '3' –

Répondre

11

C'est l'addition, puis l'opérateur unary plus répété. Il est équivalent à ce qui suit:

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

La raison est que + peut agir comme un operator unaire, semblable à la façon - peut être l'opérateur de négation. Vous êtes en train de chaîner un groupe d'opérateurs unaires ensemble (avec une dernière addition binaire).

0

Je pense qu'ils ont traité tous ces + comme le même +. Parce que la sortie est 3, donc il n'y a pas de magie ici du tout

0

vous n'obtenez aucune exception, cela fonctionne très bien. Vous obtiendrez la sortie 3.

0

Son parce que syntaxiquement il peut sembler une mauvaise utilisation de « + », mais il y a cette opération unaire se répète.