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

如何用循环构造数组并初始化为1-5的值?现有代码报NullPointerException

问题分析与修复

为什么会触发NullPointerException?

你代码里的私有数组val默认是null(Java引用类型的初始值为null),构造函数里直接访问val.length,相当于读取null对象的属性,必然抛出空指针异常。另外,循环内还声明了同名局部变量val,完全没给成员变量赋值,逻辑完全偏离目标。

修复后的代码

要构造初始值为1到5的数组,正确写法如下:

public class Array {
    private int[] val;

    public Array() {
        // 先初始化数组长度为5,对应1-5共5个数值
        val = new int[5];
        // 循环给数组元素赋值1到5
        for (int i = 0; i < val.length; i++) {
            val[i] = i + 1;
        }
        // 可选:打印数组内容验证结果
        for (int i = 0; i < val.length; i++) {
            if (i > 0) {
                System.out.print(",");
            }
            System.out.print(val[i]);
        }
    }

    // 可选:测试用主方法
    public static void main(String[] args) {
        new Array();
    }
}

关键修正点

  • 先给成员变量val分配内存:val = new int[5];,明确数组长度
  • 利用循环索引生成1到5的数值:val[i] = i + 1,索引从0开始,加1后刚好对应目标值
  • 调整打印逻辑:第一个元素前不输出逗号,避免开头出现多余符号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:20:54