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++;
}
System.out.println("n="+n+"sum="+sum);
}
}以上是求和代码,Eclipse下运行,出现
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at sum.main(sum.java:9)
这是什么问题
int n=Integer.parseInt(args[0]);这句代码书上说是有一个n的输入,是什么意思?
我初学JAVA,希望各位大虾多多指点~谢了~

解决方案 »

  1.   

    下标越界,毫无疑问是在int n= Integer.parseInt(args[0]);这个地方的args[0]这个了。
    因为你这里只有这一个地方使用了数组。运行的时候要带参数,你如果直接在eclipse里面默认情况下运行,肯定是没有参数的,所以要设置参数才可以。
      

  2.   

    要去N的值,就需要知道args[0]的值,int n=Integer.parseInt(args[0]);这句代码书上说是有一个n的输入,是需要你输入定义的数组的值。 
      

  3.   

    这两个类放在两个文件中,运行test类你就明白了
    public class sum {
    public static void main(String[] args) {
    //main方法也是方法,是这个类的静态方法;
    int n= Integer.parseInt(args[0]);
    int sum=0;
    int i=1;
    while(i<=n){
    sum=sum+i;
    i++;
    }
    System.out.println("n="+n+"sum="+sum);
    }
    }
    public class Test{
    public static void main(String[] args) {
                    sum.main(new String[]{"3"});
    }
    }
      

  4.   

    Up 3楼地
        你直接使依你的使用方法,args 只是形参,没有实际的值。
      

  5.   

    在eclipse里的sum类点右键,选run,然后选open run dialog,在Arguments里输入一个值如2既可。