何时在 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
我了解到 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