线程"main" java.lang.ArrayIndexOutOfBounds异常:在计算整数平均值时在 xxx 处为 0



我正在尝试制作一个简单的平均程序,但

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);

我个人更喜欢这种语法,并且您肯定不会使用它来迭代边界:)。

相关内容

  • 没有找到相关文章

最新更新