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
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
C'est l'addition, puis l'opérateur unary plus répété. Il est équivalent à ce qui suit:
int x = 1 + (+ (+ (+ (+ (+ (+ (+ (+ 2))))))));
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).
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
vous n'obtenez aucune exception, cela fonctionne très bien. Vous obtiendrez la sortie 3.
il évalue à 1 + (+ ... (+(+(+2))) ...)
= 1 + 2 = 3
Son parce que syntaxiquement il peut sembler une mauvaise utilisation de « + », mais il y a cette opération unaire se répète.
Je pense qu'il traite seulement tous les + comme 1 seulement. Quelle est la sortie? – vodkhang
Wow, j'ai dû compiler cela moi-même avant de le croire. Je n'ai aucune idée de pourquoi cela fonctionne. –
@vodkhang - La sortie est '3' –