[英]Strange java behaviour
誰能向我解釋一下
int i=2;
int j=+-i;//-+i;
在+-i
或-+i
任何一種情況下, j=-2
的值。
Java很好嗎? 還是應該是編譯器錯誤?
提前感謝。
絕對好 通過Java中的一元運算符
兩種情況都是相似的,但最終結果與以不同順序執行的相同操作相同!
只是這樣想: int j = +i
對應於int j = i
。 因此, -+i
或+-i
將是-i
。
您正在將兩個一元運算符應用於i
:
int j = +-i;
相當於
int j = +(-i);
同樣適用於-+i
。 結果與否定i
相同,除非i
等於Integer.MIN_VALUE
(在這種情況下, j
最終等於i
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.