A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class Primes {


  2. public static void main(String[] args) {

  3.     int N=Integer.parseInt(args[0]);
  4.     boolean[] a;
  5.     try{
  6.             a=new boolean[N];
  7.     }catch(OutOfMemoryError e){
  8.             System.err.println("Out of Memory");
  9.                     return;
  10.     }
  11.    

  12. for(int i=2;i<N;i++)a[i]=true;

  13. for(int i=2;i<N;i++)
  14. if(a[i]!=false)
  15. for(int j=i;j*i<N;j++)
  16. a[i*j]=false;
  17. for(int i=0;i<N;i++)
  18.    if(a[i])System.out.print(" "+i);
  19. System.out.println();
  20. }

  21. }
复制代码


这是一个求素数的程序,当我输入100000时,
程序产生Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -2146737495at Primes.main(Primes.java:24)
这样的异常,请问这个程序为什么会产生这样的异常,还有-2146737495这个数是如何产生的,谢谢

2 个回复

倒序浏览
第7行  数组越界了   args[0]    下表0是没有的
回复 使用道具 举报
报的是数组角标越界异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马