黑马程序员技术交流社区
标题:
请帮忙看一下这个程序为什么会产生这样的异常
[打印本页]
作者:
张浮生
时间:
2015-5-14 12:33
标题:
请帮忙看一下这个程序为什么会产生这样的异常
public class Primes {
public static void main(String[] args) {
int N=Integer.parseInt(args[0]);
boolean[] a;
try{
a=new boolean[N];
}catch(OutOfMemoryError e){
System.err.println("Out of Memory");
return;
}
for(int i=2;i<N;i++)a[i]=true;
for(int i=2;i<N;i++)
if(a[i]!=false)
for(int j=i;j*i<N;j++)
a[i*j]=false;
for(int i=0;i<N;i++)
if(a[i])System.out.print(" "+i);
System.out.println();
}
}
复制代码
这是一个求素数的程序,当我输入100000时,
程序产生Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -2146737495at Primes.main(Primes.java:24)
这样的异常,请问这个程序为什么会产生这样的异常,还有-2146737495这个数是如何产生的,谢谢
作者:
BOb_小星
时间:
2015-5-14 13:43
第7行 数组越界了 args[0] 下表0是没有的
作者:
赵旗
时间:
2015-5-14 22:18
报的是数组角标越界异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2