谁能告诉我,它为什么有效?
int[] ints = {1,2,3};
for(int i : ints) {
System.out.println(i); i = 0;
}
为什么我可以设置0为i,但还是会迭代?
最佳答案
因为 i
不是该循环中的控制变量,它只是数组中的一个值。每JLS§14.4.2 ,对于数组,增强的 for
循环等同于:
The enhanced for statement is equivalent to a basic for statement of the form:
...
for (int #i = 0; #i < #a.length; #i++) { {VariableModifier} TargetType Identifier = #a[#i]; Statement }
所以将它应用到你的循环中:
int[] ints = {1,2,3};
for (int index = 0; index < ints.length; index++) {
int i = ints[index];
System.out.println(i);
i = 0;
}
关于java - 奇怪的 for-each 循环 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514097/