之间有什么区别
i+=i*i
和
i=+i*i
在java?
任何人都可以告诉我它背后的概念是什么。内部如何运作? 我得到任何值的不同输出。
答案 0 :(得分:3)
i+=i*i
相当于:
i = i + (i*i);
i=+i*i
相当于:
i = i * i;
答案 1 :(得分:2)
让我为你解析一下:
i += i * i // uses the "plus and becomes" operator
i = +i * i // uses the assignment operator and the unary plus operator
第一个相当于
i = i + ( i * i )
第二个相当于
i = i * i
(实际上,一元+
运算符会导致“一元促销”。这可能导致取消装箱和/或升级到int
,具体取决于i
的类型。但是,在此示例中,对于*
的操作符,无论如何都会发生等效促销,因此+
没有净效果。)