Java中的数组:Java.lang.ArrayIndexOutOfBoundsException
在学习Java中的数组部分时,我遇到了这个问题,我搜索了错误消息Java中的数组:Java.lang.ArrayIndexOutOfBoundsException,java,Java,在学习Java中的数组部分时,我遇到了这个问题,我搜索了错误消息 "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Main.main(Main.java:12)" 读一些关于它的文章 我知道索引从0开始,因此它将以n-1结束(n是分配的大小)。但是我仍然没有在代码中发现问题。如果你能帮我,这对我来说意义重大,因为
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at Main.main(Main.java:12)"
读一些关于它的文章
我知道索引从0开始,因此它将以n-1结束(n是分配的大小)
。但是我仍然没有在代码中发现问题。如果你能帮我,这对我来说意义重大,因为数组是一个令人困惑的部分
我需要返回输出:
1
3
5
7
9
2
4
6
8
10
这就是我写的
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
int [] oddArray = new int[5];
int [] evenArray = new int[5];
int k = 0;
do {
k++;
oddArray[k] = k + 1;
evenArray[k] = k + 2;
}while(k <= 10);
for(int j = 0 ; j < 5 ; j++) {
System.out.println(oddArray);
}
for(int j = 0 ; j < 5 ; j++) {
System.out.println(evenArray);
}
}
}
import java.io.*;
班长{
公共静态void main(字符串[]args)引发异常{
int[]oddArray=新的int[5];
int[]evenArray=新的int[5];
int k=0;
做{
k++;
oddArray[k]=k+1;
均匀阵列[k]=k+2;
}(k注意,在第一次用“k++;”行使用k之前,要先增加k。因此,当你给oddArray和evenArray赋值时,你的索引从1开始,然后变为5,这超出了范围
您的while循环中还有和错误。您正在检查10,而您应该检查5
while(k < 5);
while(k<5);
在赋值之后,将k++移动到,修复while循环检查,它应该可以工作。您需要分离k
和数组索引。否则,当k=5
时,您将6
添加到oddArray[5]
,这是超出范围的
我会这样说
final int ARR_SIZE = 5;
int [] oddArray = new int[ARR_SIZE];
int [] evenArray = new int[ARR_SIZE];
int k = 0, index = 0;
do {
oddArray[index] = k + 1;
evenArray[index] = k + 2;
index++;
k+=2;
}while(index < ARR_SIZE);
for(int j = 0 ; j < ARR_SIZE ; j++) {
System.out.println( oddArray[j]);
}
for(int j = 0 ; j < ARR_SIZE ; j++) {
System.out.println(evenArray[j]);
}
final int ARR_SIZE=5;
int[]oddArray=新int[ARR_SIZE];
int[]evenArray=新的int[ARR_SIZE];
int k=0,索引=0;
做{
oddArray[index]=k+1;
均匀数组[索引]=k+2;
索引++;
k+=2;
}而(指数
您分配了五个“槽”。您从0-10迭代k
。10大于5。两个数组的长度都是5,因此最高索引是4。您从索引1开始(错误,应该是0),然后让它增加到10?您希望它如何工作?您是否查看了错误发生的行?您认为在(k)您的数组大小为5。您的“k”将增加到10。如果这只是一个数组,我建议迭代到array.length。这里我们有两个数组,所以我建议使用一个大小常量,用于创建两个数组,然后迭代到索引
,其中ARR\u Size表示常量。对此无可争辩,将更新代码。