何时在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