Java怪问题,3行代码!

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:13:59
int [] a={0,2,1,3,4};
for(Integer it:a)
a[it]=a[it]+1;
System.out.println(a[2]);
为什么打印出的是3?我这代码不应该是每个元素加1吗?读不明白,谁知道为什么?

是这么运行的
0 > 0
2 > 1
1 > 2 << 这个是a[2],+1自然是3
3 > 3
4 > 4

it不是0到4 而是每个格子里的值
---------

囧 我错了

public class Test {

public static void main(String[] args) {
int[] a = { 0, 2, 1, 3, 4 };
for (Integer it : a) {
a[it] = a[it] + 1;
Test.printArray(a);
}
System.out.println(a[2]);
}

public static void printArray(int[] arr) {
String theArr = "{";
for (int i = 0; i < arr.length; i++) {
if (i > 0)
theArr += ",";
theArr += arr[i];
}
theArr += "}";
System.out.println(theArr);
}

}

{1,2,1,3,4}
{1,2,2,3,4}
{1,2,3,3,4}
{1,2,3,4,4}
{1,2,3,4,5}
3

你把运行过程看一下就晓得了
it = 0;a[0] = 1;
a={1,2,1,3,4};

it = 2; a[2] = 2;
a={1,2,2,3,4}

it = 2;a[2] = 3;
a={1,2,3,3,4}