2016-08-05 43 views
1

我想知道postfix操作符比賦值操作符更好。換句話說,使用其中一個的優點/侷限性是什麼。使用修復後操作符優於賦值操作符有哪些優點/限制?

int a = 10; 
a++; 

//over 

int a = 10; 
a += 1; 

謝謝。

+0

可以下來的選民幫我糾正這個問題嗎?我想知道爲什麼一個比另一個更優先。我的問題是重複的還是應該不被問到的? – nam

回答

1

首先,a++a--a += 1a -= 1更容易編寫。

另外,假設您想要執行一個方法,並按1遞增a。 您的方法頭:public static void doSomething(int smth)

然後有幾件事情可以做:(我們假設這些線路是你的主要方法的一部分,也int a = 10;

您可以使用後綴運算符:

doSomething(a++); 
//this will at first execute your method with a and then increment it by one 

或者你也可以使用更長的版本

doSomething(a); 
a += 1; //possible too, but longer 

也有--a++a,它會首先增加一個,然後把它交給一個方法或者做一些其他的事情。

0

除了明顯的後綴++沒有真正的技術限制:它可以只有增加1 ...沒有任何其他數字。當然,它使ZERO與性能不同。

這兩種形式之間的另一個可能的區別是可讀性。在這種情況下,這是一個意見問題......我的觀點是他們同樣可讀。然而,如果你開始在更復雜的表達式中嵌入postfix和前綴遞增/遞減,那會嚴重損害你的代碼的可讀性;例如嘗試找出什麼a = a++;做...

+0

a = a ++是我永遠不會做的事情。當增量操作符本身執行賦值時,沒有指定a = a ++的要點。可能的答案我會與增量運算符分配運算符是減少我的代碼@adrian – nam

+0

@nam - 爲什麼是「減少」你的代碼的目標?目標*應*爲可讀性...由你自己和其他人。 –

+0

@stephan - 設計其實是原因!我正在嘗試遵循編碼標準。順便說一下,我指的是你的答案:) [如這裏所述](http://stackoverflow.com/questions/10256068/is-there-a-limit-on-the-number-of-lines-你可以放在一個eclipse-java -d?noredirect = 1&lq = 1) – nam

相關問題