簡體   English   中英

Java中+ =和++之間的區別

[英]Difference between += and ++ in Java

我有一個全局變量,可以使用三種不同的方法進行修改。 它從0開始,一個方法加3,下一個加2,最后一個加1。它們都與自己的按鈕相關。

當我單擊“加號1”按鈕時,計數器保持為0,我需要再次推動使其升至1。有趣的是,如果我從其他兩個按鈕開始,計數器將相應地起作用,但是如果我單擊“加號1”按鈕,再次,它需要兩次按下,並且行為很奇怪,就像它在按住添加項一樣...

 public void addThreeForTeamB(View view) {
    displayForTeamB(scoreTeamB += 3);
}

public void addTwoForTeamB(View view) {
    displayForTeamB(scoreTeamB += 2);
}

public void addOneForTeamB(View view) {
    displayForTeamB(scoreTeamB ++);
}

這樣便是它的管理方式,很酷的事情是,當我將最后一個方法更改為“ scoreTeamB + = 1”時,它會按應有的方式工作,而不會產生沖突。

我的問題是關於這兩個運算符之間的差異,以便更好地理解在同一變量上使用這兩個運算符時產生細微差異的原因。

scoreTeamB++返回變量的先前值(在變量增加之前)。 +=返回分配給變量的值。

如果將scoreTeamB++替換為++scoreTeamBscoreTeamB +=1您將獲得變量的新值(增量值)。

要使此代碼按預期工作,應使用前綴++運算符,而不要使用后綴一。 前綴++運算符(以及-運算符,顯然)返回增量值,而后綴++運算符返回增量之前的變量值。

這些可以這樣實現:

public static Integer prefixIncrement(Integer value) {
    value = value + 1;
    return value;
}

public static Integer postfixIncrement(Integer value) {
    Integer returnValue = new Integer(value);
    value = value + 1;
    return returnValue;
}

暫無
暫無

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

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