You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java数组索引操作代码解析:为何输出为1,3,6,10,15?

拆解Java数组操作代码的运行逻辑

嘿,刚学Java遇到这种数组循环的困惑太正常了!我来一步步给你拆解这段代码,帮你搞清楚为啥运行结果是1 3 6 10 15,尤其是第二个循环的迭代过程和10、15这两个值的由来。

首先先把代码清晰展示出来:

int qty[] = new int[5]; 
for (int i = 0; i < qty.length; i++) 
    qty[i] = i+1; 
for (int j = 0; j < 4; j++) 
    qty[j+1] += qty[j]; 
for (int i = 0; i < qty.length; i++) 
    System.out.print(" " + qty[i]); 
System.out.println(); 

我们分三个阶段来分析:

1. 第一个for循环:初始化数组

首先创建了一个长度为5的int数组qty,初始时所有元素默认值都是0。

这个循环的i从0到4(因为qty.length是5,i < 5),每次执行qty[i] = i+1:

  • 当i=0时,qty[0] = 0+1 = 1
  • 当i=1时,qty[1] = 1+1 = 2
  • 当i=2时,qty[2] = 2+1 = 3
  • 当i=3时,qty[3] = 3+1 = 4
  • 当i=4时,qty[4] = 4+1 = 5

循环结束后,数组qty的状态是:[1, 2, 3, 4, 5]

2. 第二个for循环:累加更新数组(重点!)

这个循环的j从0到3(因为j < 4),每次执行qty[j+1] += qty[j]——这等价于qty[j+1] = qty[j+1] + qty[j],也就是把当前位置的元素加到下一个位置的元素上,而且每次更新后的结果会被后续迭代直接使用。

我们逐次看迭代过程:

  • j=0:操作qty[1] += qty[0] → qty[1] = 2 + 1 = 3,数组变成:[1, 3, 3, 4, 5]
  • j=1:操作qty[2] += qty[1] → qty[2] = 3 + 3 = 6,数组变成:[1, 3, 6, 4, 5]
  • j=2:操作qty[3] += qty[2] → qty[3] = 4 + 6 = 10,数组变成:[1, 3, 6, 10, 5]
  • j=3:操作qty[4] += qty[3] → qty[4] = 5 + 10 = 15,数组变成:[1, 3, 6, 10, 15]

到这里你就能明白:

  • 10是通过**原来的qty[3](4) + 更新后的qty[2](6)**得到的
  • 15是通过**原来的qty[4](5) + 更新后的qty[3](10)**得到的

3. 第三个for循环:输出数组元素

最后这个循环只是遍历数组的每个元素,依次打印出来,所以输出结果就是:1 3 6 10 15

内容的提问来源于stack exchange,提问作者Nebojsa Miletic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:03:21