我正在编制一个程序来计算射弹的行进距离。它有两个阵列,一个可能的射弹发射速度,一个可能的射弹发射角度。它应该一次循环一个,并将输出添加到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;
}
然而,当我运行它时,我得到一个超出范围的数组索引错误。我该如何解决这个问题?
答案 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 ++)。还要确保修复缩进,使代码更易于阅读和理解。希望这有帮助