何时在Java中使用后增量和前增量
问题内容:
我了解对此主题有很多疑问。但是我仍然有些困惑,不确定何时使用这些操作。我正在为参加考试而做的旧考试。其中一种方法返回可访问的残疾人可用教室的数量。我编写了counter方法,但不确定是应该先递增还是递后递增计数器。我对它如何与方法中的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-increment在增量前使用原始值。
每当您的代码遇到PRE递增时,它都会在内存中递增该变量的值,然后加载该值并继续读取表达式。
POST增量执行相反的操作,它将变量的值加载到内存中,然后递增该值并继续读取表达式。
为了更清楚一点,请考虑一下
int i = counter++;
相当于
int i = counter;
counter = counter + 1;
鉴于
int i = ++counter;
相当于
counter = counter + 1;
int i = counter;
编辑:评论arent工作,所以我将在这里对其进行编辑。
我的意思是,仅在表达式中使用该值时才重要。
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