Java 运算符+;=vs=+;
我刚刚意识到我使用的是=+而不是运算符+=并且我的程序正在做各种奇怪和意想不到的事情。Eclipse没有给我任何类型的错误,所以我假设=+是一个合法的操作符,但在我的书中没有提到这一点Java 运算符+;=vs=+;,java,operators,Java,Operators,我刚刚意识到我使用的是=+而不是运算符+=并且我的程序正在做各种奇怪和意想不到的事情。Eclipse没有给我任何类型的错误,所以我假设=+是一个合法的操作符,但在我的书中没有提到这一点 我的问题是,=+如果有什么作用,你会在什么情况下使用它 常见语法是: += 这是添加和赋值运算符,它将右侧表达式添加到左侧变量,然后将结果赋值到左侧变量。例如: byte b1 = 2; short s1 = b; // compiles and s1 equals 2 of type short short
我的问题是,=+如果有什么作用,你会在什么情况下使用它 常见语法是:
+=
这是添加和赋值运算符,它将右侧表达式添加到左侧变量,然后将结果赋值到左侧变量。例如:
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
inti=1;
int j=2;
i+=j;
//产出:3
系统输出打印项次(一)
一种不太常见的语法是:
=+
通常,这被写成两个不同的运算符,用空格分隔:
=+
如果没有空间,它看起来如下所示:
inti=1;
int j=2;
i=+j;
//产出:2
系统输出打印LN(i);
编写此命令的惯用方法是将一元运算符移到右侧:
inti=1;
int j=2;
i=+j;
//产出:2
系统输出打印LN(i);
现在很容易看到i
被分配给j
的正值。但是,+
是多余的,因此它经常被删除,导致i=j
,实际上相当于i=+1*j
。相反,负一元运算符:
inti=1;
int j=2;
i=-j;
//输出:-2
系统输出打印LN(i);
这里,-
是必要的,因为它反转了j
的符号,实际上相当于i=-1*j
有关详细信息,请参见。
+=
将右操作数添加到左操作数,并将其分配给左操作数
=+
为左操作数赋值=+
与赋值运算符相同=
a =+ b;
相当于
a = (+b);
这和
a = b;
=+除了与=相同之外没有其他效果。需要强调的重要事实是,Java中没有
=+
赋值运算符
您只是列出了两个操作符,一个接一个(一个=
然后一个+
)
就像写i=+j
i=+j代码>李>
与i=-j
i=-j相同代码>
+=
- 将右侧表达式添加到左侧变量的值
- 然后将该加法的值赋给左侧变量
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
事实上,假设a=-1;是一条有效的线,我想已经决定a=+1也应该有效,尽管什么都不做。我有时用它来强调一些意图,而不是用答案来寻求帮助;如果您想添加注释,或者只是打开一个新问题,请使用注释。