Java中+ =和++之间的区别

Kar*_*ret 0 java math increment operators

我有一个全局变量,我用三种不同的方法修改.它从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 ++);
}
Run Code Online (Sandbox Code Playgroud)

所以这就是它的管理方式,很酷的是当我将最后一个方法改为"scoreTeamB + = 1"时,它就像它应该的那样,只是添加而没有冲突.

我的问题是关于这两个运算符之间的区别,以便更好地理解在同一变量上使用这2个运算符时产生的轻微差异背后的原因.

Era*_*ran 10

scoreTeamB++返回变量的先前值(在变量之前).+=返回分配给变量的值.

如果你scoreTeamB++++scoreTeamB或替换scoreTeamB +=1你将得到变量的新(递增)值.