21

我刚刚意识到我正在使用 =+ 而不是运算符 += 并且我的程序正在做各种奇怪和意想不到的事情。Eclipse 没有给我任何类型的错误,所以我认为 =+ 是一个合法的运算符,但我的书中没有提到它。

我的问题是 =+ 如果有什么作用,你会在什么情况下使用它?

4

6 回答 6

17

一个常见的语法是:

 +=

这是加法和赋值运算符,它将右手表达式添加到左侧变量,然后将结果分配给左侧变量。例如:

 int i = 1;
 int j = 2;
 i += j;

 // Output: 3
 System.out.println( i )

一个不太常见的语法是:

=+

通常这写成两个不同的运算符,用空格分隔:

= +

没有空格,它看起来如下:

int i = 1;
int j = 2;
    
i =+ j;

// Output: 2
System.out.println(i);

一种惯用的写法是将一元运算符移到右侧:

int i = 1;
int j = 2;
    
i = +j;

// Output: 2
System.out.println(i);

现在很容易看出它i被分配给 的正值j。然而,+是多余的,所以它经常被丢弃,导致i = j,实际上相当于i = +1 * j. 与之相反的是负一元运算符:

int i = 1;
int j = 2;
    
i = -j;

// Output: -2
System.out.println(i);

在这里,-将是必要的,因为它反转了 的符号j,实际上等效于i = -1 * j

有关更多详细信息,请参阅操作员教程

于 2013-06-20T06:46:44.207 回答
13

=+与赋值运算符相同=

a =+ b;

相当于

a = (+b);

这与

a = b;
于 2013-06-20T06:52:33.767 回答
3

=+需要强调的重要事实是Java中没有赋值运算符。

您只是列出两个运算符,一个接一个(=然后是 a +

  • i =+ j;就像写作一样 i = +j;

虽然这样看有点时髦,但在考虑减号时,每个人都非常清楚。

  • i =- j; 是相同的i = -j;

正如许多其他答案中提到的,添加和赋值运算符+=

  • 将右侧表达式添加到左侧变量的值
  • 然后将该添加的值分配给左侧变量。
于 2018-03-19T13:43:47.767 回答
2

+=将右操作数添加到左操作数并将其分配给左操作数

=+为左操作数赋值

于 2013-06-20T06:52:33.687 回答
1

实际上说这与不完全i=j一样i= +j并不完全正确,因为i= +j如果变量类型小于 int,则将变量类型提升为 int,而赋值则不会。例如:

byte b1 = 2;
short s1 = b; // compiles and s1 equals 2 of type short
short s2 = +b; // Compile error: required type: short, provided int
// Because the result of +b equals 2 of type int
于 2021-04-11T15:56:45.590 回答
0

=+ 没有其他效果,只是它与 = 相同

于 2013-06-20T19:39:35.830 回答