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

Java新手使用arr.length-1操作数组异常无法生成目标序列问题求助

问题排查与解决方案

根因分析

你代码的核心错误是循环内的取值逻辑不符合需求:

  • 你固定取arr[arr.length -1]、arr[arr.length -2]、arr[arr.length -3]求和,由于你初始化的数组长度为10,这三个下标固定对应索引7、8、9,int数组未赋值的元素默认值为0,因此每次计算的结果都是0,导致下标3及之后的位置全被赋值为0。
  • 你需要的是当前已经填充完成的最后三个元素求和,也就是和当前要赋值的i+3位置相邻的前三个元素arr[i]、arr[i+1]、arr[i+2]。

修正后代码

package com.company;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        try {
            int [] arr = new int[10];
            int number = 10;
            arr[0] = number;
            arr[1] = number;
            arr[2] = arr[0] + arr[1];
            for(int i = 0; i < 7; i++){
                arr[i + 3] = arr[i] + arr[i + 1] + arr[i + 2];
            }
            for(int j =0; j < arr.length; j++){
                System.out.print("\t" + arr[j]);
            }
        }catch (Exception e) {
            System.out.println("error is  " + e);
        }
    }
}

运行结果

修正后输出为:10 10 20 40 70 130 240 440 810 1490,和你预期的累加序列一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:01