为了账号安全,请及时绑定邮箱和手机立即绑定

如何重新分配一维数组中的值?

如何重新分配一维数组中的值?

繁花如伊 2021-12-01 19:17:59
我的问题有两个方面。我有一个数组:double [] temperature = {60.9, 62.6, 67.4, 71.5, 77.1, 81.2, 82.4, 82.5, 81.1, 75.3, 68.8, 63.0};当我尝试使用以下方法将这些华氏温度值转换为摄氏度或开尔文值时:for(int index = 0; index <= temperature.length; index++) {    temperature[index] = temperature[index] * tempConverter;    averageTemp += temperature[index];}我得到一个 ArrayIndexOutOfBoundsException temperature[index = temperature[index] * tempConverter;为什么会出现此错误?如何解决此问题并重新分配我的值?
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

更改您的 for 循环以使用<而不是<=

for(int index = 0; index < temperature.length; index++)

考虑一个只有一个元素的数组。这将array.length等于1,如果您使用,<=您将同时检查array[0]array[1]...但您知道只有一个元素。这就是为什么你使用它<


查看完整回答
反对 回复 2021-12-01
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

从索引0开始的长度为n的数组的最后一个索引位于n-1

目前,您的循环将从0n包含 ( <= n),这将使其在到达索引n时超出保留空间的范围。相反,您需要从0n 独占< n),如下所示:

for(int index = 0; index < temperature.length; index++) {
    ...}

想想长度为 3 的数组,其中的元素代表它们自己的索引:

a = [0, 1, 2]

尝试访问索引 = 数组长度 (3) 处的元素将不起作用,因为数组中索引 3 处没有元素。


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信