我是 Java 新手,正在运行下面的代码,该代码运行良好,但出现数组索引越界异常。有人可以帮助理解为什么我会收到此异常吗?
public class array {
public static void main (String[] args)
{
int[] b = {1,2,3,4};
array ar = new array();
ar.process(b);
}
public int process (int[] a)
{
int i;
System.out.println("Length is: " +a.length);
for(i = 0; i < a.length ; i++) {
System.out.println("A is : " + a[i] + " I is" +i);
}
return a[i];
}
}
Exception
Length is: 4
A is : 1 I is0
A is : 2 I is1
A is : 3 I is2
A is : 4 I is3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at array.process(array.java:17)
at array.main(array.java:7)
问题是这一行:
return a[i];
既然是在外面for
循环,i 变成了 4。
你可以做到:
return a[i-1];
要修复它,但您需要澄清为什么要返回数组的最后一个元素作为返回值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)