日期:2014-05-20  浏览次数:20912 次

请问一下java编译的问题
各位大虾。。 小弟我初学java 用的开发工具是eclipse 保存的时候没有报错 运行的时候就出错了 
提示了下面一段话:
java.lang.ArrayIndexOutOfBoundsException: 1000
at ab.main(ab.java:16)
Exception in thread "main" 

请问是怎么回事啊???

我编写的代码是:
public class ab
{
public static void main(String[] args) 
{
int i,j,k=0,u=0;
int[] s=new int[1000];
for(i=1;i<=1000;i++)
{
for(j=1;j<=i;j++)
{
if(i%j==0)
{
s[k]=j;
k++;
u=u+s[k];
}
}
if(i==u)
System.out.print(i+" ");
}
}
}

------解决方案--------------------
数组下标从0开始,到Array.length - 1 结束,故你for循环下标i < 1000才对。
ArrayIndexOutOfBoundsException是运行时异常,故在保存编译时一切正常,而在运行时拋异常!
------解决方案--------------------
参考:
public static void main(String[] args)
{
int i,j;
for(i=1;i<=1000;i++)
{
int u = 0;
for(j=1;j<i;j++)
{
if(i%j == 0)
{
u += j;
}
}
if(i == u)
System.out.print(i + " ");
}
}