Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在For循环内的数组中使用Length()方法时出错_Java_Arrays_For Loop_Indexoutofboundsexception_Variable Length - Fatal编程技术网

Java 在For循环内的数组中使用Length()方法时出错

Java 在For循环内的数组中使用Length()方法时出错,java,arrays,for-loop,indexoutofboundsexception,variable-length,Java,Arrays,For Loop,Indexoutofboundsexception,Variable Length,我在for循环中创建了一个数组,以降序生成1-9的立方体。我的代码似乎可以正常工作,因为我可以在没有任何语法或运行时错误的情况下运行它。然而,每当我尝试在for循环中使用length()方法时,就会得到一个“数组超出边界异常” 以下是我不带length()方法的代码: 这是我使用length()方法编写的代码: /** *此方法按降序从1到9打印立方体 */ 公共静态void多维数据集() { //创建固定长度数组和硬代码索引号 int[]值=新的int[9]; 数值[0]=1; 数值[1]=2

我在for循环中创建了一个数组,以降序生成1-9的立方体。我的代码似乎可以正常工作,因为我可以在没有任何语法或运行时错误的情况下运行它。然而,每当我尝试在for循环中使用length()方法时,就会得到一个“数组超出边界异常”

以下是我不带length()方法的代码:

这是我使用length()方法编写的代码:

/**
*此方法按降序从1到9打印立方体
*/
公共静态void多维数据集()
{
//创建固定长度数组和硬代码索引号
int[]值=新的int[9];
数值[0]=1;
数值[1]=2;
数值[2]=3;
数值[3]=4;
数值[4]=5;
数值[5]=6;
数值[6]=7;
数值[7]=8;
数值[8]=9;
//创建变量以存储立方数字
双立方数=0;
//创建for循环以按降序从1到9运行数组
对于(int counter=8;counter而言,问题在于:

for (int counter = 8; counter <= values.length; counter--)

您的条件是计数器值。长度是9。此循环没有意义。为什么要将
>0
替换为
我需要使用值。长度()方法,所以我想我必须在那里使用它。我只是尝试了values.length-1,虽然它似乎有效,但我还是很困惑为什么。什么时候使用length()意味着什么方法减去1?嗯,values.length是9。不是0。这是数组的长度。你想从最后一个索引开始循环,它等于长度-1。请再次阅读我的评论。哦,我想我开始理解了。循环是按降序进行的,所以我需要从-1值开始,它是9?不,你不想从-1开始。你想吗从8开始,就像在你的工作循环中一样。你从8开始,因为它是数组的最后一个索引,长度为9。所以,你不是硬编码8,而是使用values.length-1,这样,如果你决定使用20个元素的数组,循环继续从最后一个索引开始,然后是19。你没有意识到
l吗英语-1和英语-1不是一回事吗?
/**
 * This method prints out a cubes from one to nine in descending order
 */
public static void cubes()
{
    // create a fixed length array and hard code index number
    int[] values = new int[9];
    values[0] = 1;
    values[1] = 2;
    values[2] = 3;
    values[3] = 4;
    values[4] = 5;
    values[5] = 6;
    values[6] = 7;
    values[7] = 8;
    values[8] = 9;
    // Create variable to store cubed numbers
    double cubedNumber = 0;
    // Create for loop to run the array from 1-9 in descending order
    for (int counter = 8; counter <= values.length; counter--)
    {
        cubedNumber = Math.pow(values[counter], 3);
        System.out.println(values[counter] + " cubed is " + cubedNumber);
    }
}
for (int counter = 8; counter <= values.length; counter--)
for (int counter = values.length - 1; counter >= 0; counter--)
for (int counter = values.length - 1; counter >= 0; counter--)
{
    cubedNumber = Math.pow(values[counter], 3);
    System.out.println(values[counter] + " cubed is " + cubedNumber);
}