Java 在For循环内的数组中使用Length()方法时出错
我在for循环中创建了一个数组,以降序生成1-9的立方体。我的代码似乎可以正常工作,因为我可以在没有任何语法或运行时错误的情况下运行它。然而,每当我尝试在for循环中使用length()方法时,就会得到一个“数组超出边界异常” 以下是我不带length()方法的代码: 这是我使用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
/**
*此方法按降序从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);
}