for-each循环索引

时间:2012-10-07 05:19:32

标签: java arrays for-loop foreach indexing

我有这段代码:

int[] tab2 = {1, 2, 3, 4, 5, 6 ,7, 8, 9, 0};
for(int i : tab2)
    System.out.print(i + " ");

int[] tab3 = {1, 2, 3, 4, 5, 6 ,7, 8, 9, 0};
for(int i : tab3)
    System.out.print(tab3[i] + " ");

第一个循环给了我1 2 3 4 5 6 7 8 9 0

而第二个给了我2 3 4 5 6 7 8 9 0 1

怎么来的?不是数组0的第一个索引吗?

3 个答案:

答案 0 :(得分:2)

在第二个循环的第一次迭代中,i等于1 ..因此tab3[i]2

答案 1 :(得分:0)

在第二个循环中,您可以通过查看tab3项目来打印价值。

tab3[tab3[0]], tab3[tab3[1]], tab3[tab3[2]], ...

答案 2 :(得分:0)

在每种情况下,for循环都会导致i采用数组中的每个值。第一个循环打印出每个值,正如您所期望的那样。

但是在第二个循环中,这些值被用作tab3[]数组的索引。

i取值1,2,3,4,5,6,7,8,9,0时, 打印值为tab3[1]tab3[2],...,tab3[0]
正如你所写,它是2,3,4,5,6,7,8,9,0,1。

如果循环i通过0到9之间的值,您将得到预期的值,如下所示:

for (i = 0;  i < 10;  ++i) 
  System.out.print(tab3[i] + " ");