什么时候在Java中使用post增量和pre增量

我知道StackOverflow上有很多关于这个主题的问题。 但我仍然有点困惑,不确定何时使用这些操作。 我正在通过旧考试来学习考试。 其中一种方法可以获得残疾人无障碍且可用的教室数量。 我写了计数器方法,但不确定我是否应该预先增加或增加计数器。 我很困惑它如何在方法中使用return语句。 我仍然没有得到该方法将在下面返回的值。 其他问题没有显示方法中的返回值,因此我很困惑它实际上是如何工作的。 这是代码:

public int howManyHandi() { int counter= 0; for (int i = 0; i < _clsrms.length; i++){ if (_clsrms[i].handicappedSuitable() && _clsrms[i].isAvailable()){ ++counter; } } return counter; } 

如果要在该表达式中使用变量的递增值,则使用PRE-increment。而POST递增在递增之前使用原始值。

每当您的代码遇到PRE增量时,它会增加内存中该变量的值,然后加载该值并继续读取表达式。

POST增量相反,它将该变量的值加载到内存中,然后递增该值并继续读取表达式。

为了更清楚,请考虑这一点

 int i = counter++; 

相当于

 int i = counter; counter = counter + 1; 

鉴于

 int i = ++counter; 

相当于

 counter = counter + 1; int i = counter; 

编辑:我的StackOverflow评论不起作用,所以我将在这里编辑它。

我在说什么,只有在表达式中使用该值时才重要。

 sum = 0 counter = 0; sum = (++counter)+(++counter)+(counter++) 

评估为

 sum = 0 counter = 0 //For first ++counter counter = counter + 1 sum = counter //For second ++counter counter = counter + 1 sum = sum + counter //For first counter++ sum = sum + counter counter = counter + 1 

在你的例子中没关系,因为你对++counter返回的值什么都不做。

唯一不同的是,当您使用post / pre-increment运算符返回的值时。

例如,如果你有一个return counter++; 或者return ++counter; 声明,您的方法将根据您使用的运算符返回不同的结果。