簡體   English   中英

優先運算符 in java 8 - 后綴運算符優先

[英]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++中,優先級在兩個地方發揮作用:

  1. ++x - … - 這兩個運算符++和(二進制) -可以在x上使用; ++具有優先權,所以這相當於(++x) - … ,而不是++(x - …)
  2. … - x++ - 兩個運算符(二進制) -++可以在x上使用; ++具有優先權,所以這相當於… - (x++) ,而不是(… - x)++

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM