猿问

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

我的问题有两个方面。


我有一个数组:


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;

  1. 为什么会出现此错误?

  2. 如何解决此问题并重新分配我的值?


繁花如伊
浏览 133回答 2
2回答

慕桂英546537

更改您的 for 循环以使用<而不是<=:for(int&nbsp;index&nbsp;=&nbsp;0;&nbsp;index&nbsp;<&nbsp;temperature.length;&nbsp;index++)考虑一个只有一个元素的数组。这将array.length等于1,如果您使用,<=您将同时检查array[0]和array[1]...但您知道只有一个元素。这就是为什么你使用它<。

蛊毒传说

从索引0开始的长度为n的数组的最后一个索引位于n-1。目前,您的循环将从0到n包含 (&nbsp;<= n),这将使其在到达索引n时超出保留空间的范围。相反,您需要从0到n&nbsp;独占(&nbsp;< n),如下所示:for(int&nbsp;index&nbsp;=&nbsp;0;&nbsp;index&nbsp;<&nbsp;temperature.length;&nbsp;index++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;...}想想长度为 3 的数组,其中的元素代表它们自己的索引:a&nbsp;=&nbsp;[0,&nbsp;1,&nbsp;2]尝试访问索引 = 数组长度 (3) 处的元素将不起作用,因为数组中索引 3 处没有元素。
随时随地看视频慕课网APP

相关分类

Java
我要回答