Java中= +和+ =之间的区别?

d00*_*001 3 java

任何人都可以解释当你使用= +时发生了什么?

int one = 1 ;
int two = 2 ;

int sum1 = 0 ;
int sum2 = 0 ;

sum1 =+ one ;
sum2 += two ;

sum1 =+ two ;
sum2 += one ;

System.out.println(sum1) ;
System.out.println(sum2) ;
Run Code Online (Sandbox Code Playgroud)

输出:

2
3
Run Code Online (Sandbox Code Playgroud)

为什么第1行2?

ΦXo*_*a ツ 6

这样做

sum1 += one ;
Run Code Online (Sandbox Code Playgroud)

是相同的 sum1 = (sum1_type)(sum1 + one);

这样做

sum2 =+ two ;
Run Code Online (Sandbox Code Playgroud)

是相同的

并执行此操作sum2 = two;(一元加运算符;指示正值)并且不影响变量的符号

  • "`sum1 + = 1;`与`sum1 = sum1 + one相同;`"不,它不相同,它相似但不相同.可以在此处找到反例:http://stackoverflow.com/questions/8710619/javas-compound-assignment-operators (2认同)

Dan*_*ams 3

Java 不太关心空白。=+被解释为=赋值和+一元加运算符,这在这里没有任何作用。这是一个很少使用的运算符,您可以在这里详细了解它的作用http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.15.3

您可以在此处阅读有关 Java 中不同运算符的更多信息https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

  • 我不认为“+”是转换为正数。它似乎根本没有做任何事情。我尝试了`int a = -5; System.out.print(+a);` 并打印 `-5`。然而,“System.out,print(-a)”确实打印了“5”。 (3认同)