首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for-each循环索引

for-each循环索引
EN

Stack Overflow用户
提问于 2012-10-07 13:19:32
回答 3查看 376关注 0票数 0

我有一段代码:

代码语言:javascript
复制
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吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-07 13:28:54

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

代码语言:javascript
复制
tab3[tab3[0]], tab3[tab3[1]], tab3[tab3[2]], ...
票数 0
EN

Stack Overflow用户

发布于 2012-10-07 13:21:30

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

票数 2
EN

Stack Overflow用户

发布于 2012-10-07 13:29:30

在每种情况下,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的值,您将获得预期的值,如下所示:

代码语言:javascript
复制
for (i = 0;  i < 10;  ++i) 
  System.out.print(tab3[i] + " ");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12766318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档