2013-03-27 47 views
3

作爲序言,我使用薄荷12x64日食3.7.2爲什麼不能在賦值運算符中增加一個變量?

假設你有給定的字段:

tail = 10; 
capacity = 10; 

現在,假設你要執行該語句:

tail++ %= capacity; 

爲什麼聲明是非法的?聲明是否含糊?到我它似乎將在一個順序如評估:

  • 尾=模量容量
  • 尾增量tail++由一個

回答

6

的表達式的結果,不是一個變量。從JLS開始,部分15.14.2

後綴增量表達式的結果不是變量,而是值。

您不能將值賦給變量(或字段)。

+1

現在有道理。聲明完全基於我的想法,即變量返回的不是變量的值。感謝您的鏈接。 – AedonEtLIRA 2013-03-27 16:50:14

5

爲什麼你的樣品不能編譯的原因是因爲tail++,不是變量++運算符接受一個變量(並將其遞增),然後返回,然後嘗試分配該變量。您只能分配給變量,因此編譯器錯誤。如果你想使你的樣本工作,你可以嘗試:

tail %= capacity; 
tail++; 
相關問題