2017-01-04 58 views
2

這聽起來很瘋狂,但我很想知道是否可以使用單個指令來修改兩個不同變量的值。 例如,假設我有此代碼(x和y是INT變量):雙指派單指令

if(x < 0) { 
    y -= x ; 
    x = 0; 
} 

如果x等於-1,我會獲得通過執行以下操作相同的結果:

if(x < 0) y -= x++; 

有沒有辦法推廣以前的結果?我嘗試過這樣的指令:

if(x < 0) y -=x-=x; 

但是,雖然x在最後等於0,y不會被修改。我錯過了什麼?

編輯

我認爲(我是錯的可能),很明顯,我的問題是純粹的理論。 我知道應該避免這種做法。我只是好奇而已 :)。

+1

可能是因爲這會導致代碼的未來維護者詛咒你永恆,並可能在半夜帶着火焰噴射器和殺人意圖進入你的門。不要編寫這樣可怕的代碼只是爲了節省一些擊鍵。 –

回答

1

試試這個:

if(x < 0) x = (y -= x) - y; 

它的優良嘗試像這些技巧是一個挑戰。但是,請勿在實際代碼中使用這種類型的代碼,因爲它會爲其他人造成混淆。

+0

我現在也找到了這個解決方案!謝謝! – Ansharja

+1

@Ansharja請不要在現實生活中使用此代碼。編碼酷和神祕的在線人的時代已經結束。請寫**乾淨的代碼**! –