什么时候在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;
声明,您的方法将根据您使用的运算符返回不同的结果。