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,希望各位大虾多多指点~谢了~
解决方案 »
- CountDownLatch 计数位0仍然阻塞
- 2010支付宝西安最新笔试题..求高手给出算法和思路
- SCJP线程概念题目请教 谢谢
- 关于SWT Shell问题?
- 我发现真正理解面向对象,好难啊?有什么办法啊?
- 求教高手:已得到一个类实例,如何得到它的类的字节数组呢?
- 17.6 mod 4 = "+17.6%4的答案为什么是1.6000000000000014?
- java.util.date如何获取前一天的时间
- EditPlus配置问题,有关package
- 请问谁有oracle8.0.5的jdbc驱动程序!!!!!
- james 服务器 添加外部jar包的问题?
- 我的一个JSP系统在重装环境后无法显示,请高手帮忙
因为你这里只有这一个地方使用了数组。运行的时候要带参数,你如果直接在eclipse里面默认情况下运行,肯定是没有参数的,所以要设置参数才可以。
public class Test{
public static void main(String[] args){
sum.main(new String[]{"2"})//new String[]{"3","a"},只要传一个String类型的数组且这个数组至少有一个元素,还有第一个元素必须是个正整数
}
}
后面的这个12是你传进去的参数,而用ECLIPSE默认是没有参数的,至于在ECLIPSE里怎么传参数,很简单的,自己查下
你没有传参数,那么public static void main(String[] args)这里的args这个数组就是空的,而你要访问args[0]数组下标就越界了,因为你的数组长度为零args[0]里根本没有东西
>java sum 0 1 2
那么有三个参数
args[0] = 0
args[1] = 1
args[2] = 2
选择 open run Dialog 会弹出一个对话框
在对话框上选择 Arguments
在Program arguments 中填入你要赋给args数组赋的值
最后点击那个对话框上面的run按钮就行了
args数组需要传入值