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.   

    哥们你怎么同一个问题发这么多贴。。 
    public class Test{ 
    public static void main(String[] args){ 
    sum.main(new String[]{"2"})//new String[]{"3","a"},只要传一个String类型的数组且这个数组至少有一个元素,还有第一个元素必须是个正整数 

    }
      

  3.   

    查一下Scanner方法吧
    import java.util.^;
    public class sum {
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            int n= in.readInt();
            int sum=0;
            int i=1;
            while(i<=n){
                sum=sum+i;
                i++;
            }
            System.out.println("n="+n+"sum="+sum);
        }
    }
      

  4.   

    一楼正解,缺参数,在cmd下运行就可以了
      

  5.   


    正解。如果你非要在eclipse下跑,右键->Run As->Open Run Dialog->右边的Arguments->Program arguments里填入你要传入的参数
      

  6.   

    如果你非要在eclipse下跑,右键->Run As->Open Run Dialog->右边的Arguments->Program arguments里填入你要传入的参数 
      

  7.   

    数组越界  然后在cmd下运行java命令时,输入参数(我也是初学者)
      

  8.   

    System.out.println("请输入所需判断的数字:");
    Scanner reader = new Scanner(System.in);