我正在尝试制作一个简单的平均程序,但
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at average.main(average.java:8)
第八行(其余在下面)是
int i1 = Integer.parseInt(args[i]);
以下完整代码:
public class average {
public static void main (String args[]) {
int sum = 0;
for(int i = 0; i <= args.length; i++) {
int i1 = Integer.parseInt(args[i]);
sum = i1 + sum;
}
int average = sum / (args.length - 1);
System.out.println(average);
}
}
您想要更改
for(int i = 0; i <= args.length; i++)
至
for(int i = 0; i < args.length; i++) {
假设args包含2个数据,那么args.length
将返回2,对吗?
因此,for(int i = 0; i <= args.length; i++)
将迭代3次(i=0,i=1,i=2,因为您允许i等于args.length)
但是,args[2]不存在,因为只有2个值(args[0]和args[1])。
此外,请注意,sum = i1 + sum;
可以简化为sum += i1
。
你甚至可以缩短更多的循环:
for(String s : args)
sum += Integer.parseInt(s);
我个人更喜欢这种语法,并且您肯定不会使用它来迭代边界:)。