我不明白为什么下面程序中的 myArray[i]
只打印了 0 3 次。
int[] myArray = new int[6];
for (int i = 0; i <= 5; i++) {
myArray[i] = i++;
System.out.println("myArray:"+myArray[i]);
//need to know how to print this object myArray[i]?
}
System.out.println("Outside for" +Arrays.toString(myArray));
我的输出是:
myArray:0
myArray:0
myArray:0
Outside for[0, 0, 2, 0, 4, 0]
我不明白为什么 myArray
总是 0..
最佳答案
java中int的默认值为零。因此,您的 int 数组在其所有索引中都被初始化为零。在循环的第一次迭代期间,以下是您的变量状态...
myArray = [0, 0, 0, 0, 0, 0];
i = 0;
i 的值为 0,因此将零插入 myArray[0]。然后我递增。现在您正在打印 myArray[1]
的值为“0”。在循环结束时,以下是变量的状态...
myArray = [0, 0, 0, 0, 0, 0];
i = 1;
现在 i 的值通过 for 循环递增并且 i 的值变为 2。现在你插入的值 2 是 myArray[2]
。然后 i 的值由于后递增运算符而递增。循环执行后,这是变量的状态。
myArray = [0, 0, 2, 0, 0, 0];
i = 3;
现在 i 的值通过 for 循环递增并且 i 的值变为 4。现在您要插入的值 4 是 myArray[4]。然后 i 的值由于后递增运算符而递增。循环执行后,这是变量的状态。
myArray = [0, 0, 2, 0, 4, 0];
i = 5;
现在 i 的值增加并且 for 循环的条件被打破。然后打印数组的值...输出以下数据...
Outside for[0, 0, 2, 0, 4, 0]
由于后递增操作,您的 myArray 值始终打印下一个位置的值。由于 int 的默认值为零,因此您总是在输出中打印零。
如果您删除后增量操作,我想您会找到您正在尝试的。以下链接提供了增量在 Java 中的工作方式...
这里是关于如何使用 eclipse IDE 调试应用程序的链接...
关于java - 插入循环时数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36833763/