任何人都可以解釋我這個奇怪的Java行爲
int i=2;
int j=+-i;//-+i;
的j=-2
值在+-i
或-+i
無論是哪種情況。
這在Java中很好嗎?或者這應該是一個編譯器錯誤?
Thankx提前。
任何人都可以解釋我這個奇怪的Java行爲
int i=2;
int j=+-i;//-+i;
的j=-2
值在+-i
或-+i
無論是哪種情況。
這在Java中很好嗎?或者這應該是一個編譯器錯誤?
Thankx提前。
這絕對沒問題。通過java中的Unary Operators進行搜索
這兩種情況都是類似的,最終結果與以不同順序執行的相同操作保持相同!
想想這樣:int j = +i
將對應於int j = i
。因此,-+i
或+-i
將是-i
。
你申請兩個一元運營商i
:
int j = +-i;
相當於
int j = +(-i);
,同樣爲-+i
。結果與否定i
相同,除非i
等於Integer.MIN_VALUE
(在這種情況下j
結束等於i
)。
尼斯鏈接:) +1 – mprabhat