我有 3 个数组 iX、iY 和 iZ,每个数组包含 20 个整数。
iX 增加 5,iY 增加 3,iZ 是两者之和。
for (int i=5; i <=iX.length; i+=5)
{
iX[i] = i;
System.out.print (i + "\n");
}
for (int j=3; j <iY.length; j+=3)
{
iY[j] = j;
}
for (int k=0; k < iZ.length; k++)
{
iZ[k] = iX[k]+iY[k];
}
当我运行它时,我得到: “线程“主”中的异常 java.lang.ArrayIndexOutOfBoundsException:20 在 Quiz10RTN.main(Quiz10RTN.java:61)"
第 61 行是:iX[i] = i;
我似乎无法让它打印出 20 个数字,因为它似乎将我的 20 个整数的限制视为停止的范围。任何帮助都会很棒,谢谢。
最佳答案
问题在这里
for (int i=5; i <=iX.length; i+=5)
^
没有与 iX.length
匹配的索引在你的数组中。
数组索引以 0
开头,所以如果数组的大小是 n
,那么您只有来自 0
的索引至n-1
。
您可以使用以下方法来避免异常。但你需要考虑其他方法来实现你的目标。
for (int i=5; i <iX.length; i+=5)
编辑:发表评论I was trying to print out "5, 10, 15, 20, 25...etc"
您可以尝试以下操作
for (int i=0; i <iX.length; i++) {
iX[i]=(i+1)*5; // now your array become 5,10,15,...
}
关于java - 数组按 5's and 3' 计数,然后添加数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008743/