为什么这里出现数组超出范围的异常?

时间:2014-10-20 20:36:07

标签: java arrays

int m;
Scanner obj=new Scanner(System.in);
System.out.println("limit of array start from 0");
m=obj.nextInt();

int[] array=new int[m];
int[] pro=new int[m];
int front=0;

int rear=m;

System.out.println("Array element entry");
for(int i=0;i<array.length;i++)
    array[i]=obj.nextInt(); 

System.out.println("size"+array.length);

array[front]=array[front]+array[rear];

for(int j=0;j<pro.length;j++)
    System.out.println(" the array"+array[j]); 

2 个答案:

答案 0 :(得分:2)

你正在做数组[后]在这种情况下,后面是==到数组的大小,并不是一个有效的索引。数组从0到(size - 1)。

int rear = m - 1;

试试。

答案 1 :(得分:0)

int rear = m;

应该是

int rear = m - 1;

因为Java数组从0开始,并且它总是不受限制地尝试访问array.length处的元素。

此外,您可以使用Arrays.toString(int[])打印数组;

System.out.println(Arrays.toString(array));