何时在 Java 中使用 post 增量和预增量

When to use post increment and pre increment in Java

我了解到 Whosebug 上有很多关于此主题的问题。但我仍然有点困惑,不确定何时使用这些操作。我正在为考试复习旧的考试。其中一种方法 return 是残疾人无障碍和可用的教室数量。我写了计数器方法,但不确定我是应该预递增还是 post 递增计数器。我对它如何与方法中的 return 语句一起使用感到困惑。我仍然没有得到下面的方法 return 的值。其他问题没有在方法中显示 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;
}  

在您的示例中,这无关紧要,因为您没有对 ++counter 编辑的值 return 执行任何操作。

唯一有区别的是当您使用由 post/pre-increment 运算符编辑的值 return 时。

例如,如果您有 return counter++;return ++counter; 语句,您的方法会 return 根据您使用的运算符得到不同的结果。

PRE-increment 当您想在该表达式中使用变量的增量值时使用。,而 POST-increment 在增量之前使用原始值。

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

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

为了更清楚,考虑这个

int i = counter++;

等同于

int i = counter;
counter = counter + 1;

鉴于

int i = ++counter;

等同于

counter = counter + 1;
int i = counter;

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

我的意思是,只有当您在表达式中使用该值时才有意义。

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