For Array in Array(Java)Index Out of Bounds

时间:2017-11-17 20:23:34

标签: java arrays indexoutofboundsexception

我很难在for循环中使用数组,该循环应该按降序排列数字1-9。我不断得到一个越界错误,并且立方值完全关闭。我非常感谢我在思考数组时遇到的问题。我相信问题在于我的索引,但我很难解释原因。

System.out.println("***** Step 1: Using a for loop, an array, and the Math Class to get the cubes from 9-1 *****");
    System.out.println();
    // Create array
    int[] values = new int[11];
    int[] moreValues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    // Create variable to store cubed numbers
    double cubedNumber = 0;
    // Create for loop to count in descending order
    for (int counter = 9; counter < moreValues.length; counter--)
    {
        cubedNumber = Math.pow(counter,3);
        System.out.println(moreValues[counter] + " cubed is " + cubedNumber);
    }

Output

2 个答案:

答案 0 :(得分:1)

您的主要错误是循环终止条件counter < moreValues.length,如果您计算 down 始终为真

相反,请检查索引是否为零:

for (int counter = 9; counter >= 0; counter--)

你的另一个错误是你正在计算索引,而不是索引指向的数字,所以请改为编码;

cubedNumber = Math.pow(moreValues[counter], 3);

为了减少混淆,您最好使用行业标准名称作为循环变量,例如i或将循环变量用作数组的索引,index经常使用并且可以提高代码清晰度。

答案 1 :(得分:0)

尝试:

for (int counter = moreValues.length; counter >= 1; counter--)
{
    cubedNumber = Math.pow(counter,3);
    System.out.println(moreValues[counter-1] + " cubed is " + cubedNumber);
}