给出以下代码片段:
int i = 0;
int y = + ++i;
System.out.println(y);
结果是1.为什么这是一个有效的声明?谁能解释什么是= +?
答案 0 :(得分:7)
int y = + ++i;
此行中的第一个+
只是一元+
运算符(请参阅:Assignment, Arithmetic, and Unary Operators)。它什么都不做。它类似于一元-
运算符。上面的行相当于:
int y = ++i;
以i
为增量,然后将i
的新值分配给y
。
答案 1 :(得分:2)
这里+
表示该值是正的,即。 unary
运算符,如果您将值更改为-
,那么答案将为-1
。即int y = - ++i;
将提供-1
。
答案 2 :(得分:2)
等号后面的第一个加号是值的符号。 所以这意味着它是一个正数。
int y = - ++i;
会返回-1
答案 3 :(得分:0)
Java guarantees将对其进行评估left-to-right
。具体来说,++有higher precedence
而不是+。所以它首先绑定那些,然后它将左右的加法操作联系起来