我刚刚了解到,如果一个return语句包含一个自增操作,return会先执行,值会在自增之前返回。如果我首先在单独的语句中递增,然后返回,它会按预期工作。
private static int incrementIntV1(int a)
{
return a++;
}
private static int incrementIntV2(int a)
{
a++;
return a;
}
public static void main(String[] args)
{
int b = 6;
System.out.println("Increment in return: " + incrementIntV1(b));
System.out.println("Increment first, then return: " + incrementIntV2(b));
System.out.println("Increment with addZero: " + incrementAddZero(b));
}
return 发生了什么使得它有时评估整个表达式,有时不评估?这是关于增量操作如何发生的特别之处吗?
如果我尝试:
private static int incrementAddZero(int a)
{
return a++ + addZero();
}
private static int addZero()
{
System.out.print("addZero executes");
return 0;
}
增量操作仍然没有发生,但我知道 addZero 方法由于 print 语句而运行。为什么它在 return 之前不递增,但它在 return 之前执行 addZero 方法?
希望他说得通。非常感谢。