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

Java三数组循环赋值异常:后续数组全为0的原因排查求助

问题分析与修复方案

核心错误原因

  • 循环变量作用域问题:你没有在每个循环内部声明i、j、k,导致这些变量在循环结束后依然保留最终值(第一个循环结束后i=49,第二个循环结束后j=49)。
  • 数组索引误用:
    • 第二个循环里误用了value[i]而非value[j],此时i的值是49,但第一个循环仅给value[0]到value[48]赋了值,value[49]是float数组默认初始值0,平方后结果全为0。
    • 第三个循环里误用了valueSQ[j] + value[i]而非valueSQ[k] + value[k],此时j=49、i=49,对应数组元素都是0,求和结果自然全为0。

修复后的代码

int loopMax = 49;
float[] value = new float[50];
float[] valueSQ = new float[50];
float[] sum = new float[loopMax]; // 仅需49个元素,对应前两个数组的有效元素

// 生成1-49填入value数组
for (int i = 0; i < loopMax; i++) {
    value[i] = i + 1;
}

// 计算平方填入valueSQ数组
for (int j = 0; j < loopMax; j++) {
    valueSQ[j] = (float) Math.pow(value[j], 2);
}

// 计算对应位置元素和填入sum数组
for (int k = 0; k < loopMax; k++) {
    sum[k] = valueSQ[k] + value[k];
    System.out.println(sum[k]);
}

额外优化提示

  • 数组声明时显式加上类型(float[] value),避免隐式变量引发的问题。
  • sum数组长度无需设为两个数组长度之和,对应有效元素数量设置为loopMax更合理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:10:38