Java程序中出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0是怎么回事
附源程序:
public class Sum
{
public static void main(String args[])
{
int n=Integer.parseInt(args[0]);
int sum=0;
int i=1;
while (i <= n)
{
sum = sum + i;
i = i + 1;
}
System.out.println("n="+n+" sum="+sum);
}
} 展开
在运行的时候要加上参数,像这样:
java Sum 5
args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。
for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av.length处。
扩展资料:
从类 java.lang.Throwable 继承的方法
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
构造方法详细信息
publicArray IndexOutOfBoundsException()构造不带详细消息的
publicArrayIndexOutOfBoundsException(int index)用指示非法索引的参数构造新的ArrayIndexOutOfBoundsException类。
运行这个程序必须要用命令行向它传个参数。
int n=Integer.parseInt(args[0]);
如果你没有传参数,则args数组的大小是0, 而你要访问他的第一个元素,所以越界了。
java Sum 5
args[0]就是取第一个参数,因你运行的时候没有参数所以会把索引越界异常。
int n=Integer.parseInt(args[0]);
如果你没有传参数,则args数组的大小是0, 而你要访问他的第一个元素,所以越界了。