[英]precedence operator in java 8 - postfix operator first
按照java 8 中的優先級運算符,很明顯后綴運算符 (expr++ expr--) 的優先級高於一元運算符、前一元運算符 (++expr --expr)。 但是在執行這段代碼時:
x = 3; y = ++x - x++;
y 的值為 0
但對我來說,按照上表,結果應該是 y = (5 - 3) 因為 x++ 應該首先被評估。
誰能解釋為什么這是 y = 0 而不是 y = 2?
什么時候在表達式的同一行上使用運算符優先級? 或者為什么有運算符優先順序以及何時使用?
運算符優先級決定了幾個運算符中的哪一個與操作數相關聯。 在表達式++x - x++
中,優先級在兩個地方發揮作用:
++x - …
- 這兩個運算符++
和(二進制) -
可以在x
上使用; ++
具有優先權,所以這相當於(++x) - …
,而不是++(x - …)
。… - x++
- 兩個運算符(二進制) -
和++
可以在x
上使用; ++
具有優先權,所以這相當於… - (x++)
,而不是(… - x)++
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.