对2D数组使用double for循环导致Java

时间:2018-03-13 18:56:10

标签: java arrays multidimensional-array

我正在编制一个程序来计算射弹的行进距离。它有两个阵列,一个可能的射弹发射速度,一个可能的射弹发射角度。它应该一次循环一个,并将输出添加到2D数组中,以便稍后在图形中打印。

for (int i = 0; i < myLaunchSpeeds.length; i++) {

        for (int j = 0; j < myLaunchAngles.length; i++) {

            myLaunchAngles[j] = Math.toRadians(myLaunchAngles[j]);

            myDistances[i][j] = myLaunchSpeeds[i] * Math.sin((2 * myLaunchAngles[j])); //this is where the error is
            myDistances[i][j] = myDistances[i][j] / 9.8;

        }

然而,当我运行它时,我得到一个超出范围的数组索引错误。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你的第二个循环有++i,它应该有++j

答案 1 :(得分:0)

for (int i = 0; i < myLaunchSpeeds.length; i++) {

        for (int j = 0; j < myLaunchAngles.length; i++) {

            myLaunchAngles[j] = Math.toRadians(myLaunchAngles[j]);

            myDistances[i][j] = myLaunchSpeeds[i] * Math.sin((2 * myLaunchAngles[j])); //this is where the error is
            myDistances[i][j] = myDistances[i][j] / 9.8;

        }

问题是你的第二个for循环,你在其中增加I的值(int j = 0; j&lt; myLaunchAngles.length; i ++)。还要确保修复缩进,使代码更易于阅读和理解。希望这有帮助