任何人都可以解释我这个
int i=2;
int j=+-i;//-+i;
j=-2
或+-i
中-+i
的值。
这在Java中很好吗?或者这应该是编译器错误?
提前谢谢。
答案 0 :(得分:11)
答案 1 :(得分:2)
这绝对没问题。浏览java中的Unary Operators
两种情况都相似,最终结果与以不同顺序执行的相同操作保持相同!!
答案 2 :(得分:2)
只需按照这种方式考虑:int j = +i
将对应int j = i
。因此,-+i
或+-i
将为-i
。
答案 3 :(得分:2)
您将两个一元运算符应用于i
:
int j = +-i;
相当于
int j = +(-i);
,同样适用于-+i
。结果与否定i
相同,除非i
等于Integer.MIN_VALUE
(在这种情况下j
最终等于i
)。