gpt4 book ai didi

java - 前/后增量运算符和数组

转载 作者:行者123 更新时间:2023-11-29 06:36:13 26 4
gpt4 key购买 nike

我正在尝试以下 Java 片段:

int[] testArray={10,20,30,40};
int i= 0;
testArray[i++]= testArray[i++]+1;

System.out.println("The value of i: "+i);

for(int i1=0;i1<testArray.length;i1++)
{
System.out.println(testArray[i1]);
}

当 i=0 时,数组的输出值为:21, 20,30,40

我无法理解这个输出,因为输出应该是:10, 11, 30, 40

testArray[0]+1 将是 11 然后它会被分配给 testArray[1] 但事实并非如此.任何人都可以解释输出吗?

最佳答案

在下面的作业中:

testArray[i++] = testArray[i++] + 1;

首先评估i++ 的值,结果为0。然后 i 的值递增。因此,在 RHS 开始计算之前,i 的值已变为 1。所以,基本上,上面的表达式等同于:

testArray[0] = testArray[1] + 1;

在上面的表达式之后,i 的值将是 2。但是,如果您将表达式更改为:

testArray[i] = testArray[i++] + 1;

.. 你会得到预期的结果。

关于java - 前/后增量运算符和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com