【问题标题】:Console shows Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 [duplicate]控制台在线程“main”java.lang.ArrayIndexOutOfBoundsException中显示异常:0 [重复]
【发布时间】:2020-11-05 13:35:26
【问题描述】:

当我尝试运行和编译我的代码时,控制台显示:

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at FactorialProgram5.main(FactorialProgram5.java:9)

我无法弄清楚为什么它会这样做,因为我所做的其他代码正在工作。

这是我的代码:

import java.util.Scanner;

public class FactorialProgram5 {
    public static void main(String args[]) {
        long n;
        long fact = 1;

        n = Long.parseLong(args[0]);

        for (int i = 1; i <= n; i++) {
            fact = fact * i;
        }

        System.out.print("fact=" + fact);
    }
}

【问题讨论】:

标签: java arrays command-line-arguments


【解决方案1】:

如果您在执行程序时没有传递参数,args[0] 它会尝试检索参数数组的第一个值,但如果数组为空(因为您没有传递值)它会引发此一种例外。

ArrayIndexOutOfBoundsException: 0 表示您试图访问数组中不存在的位置。如果你尝试访问位置 0 并且失败是因为数组是空的。

【讨论】:

    【解决方案2】:

    因为当你运行你的程序时,你并没有向它传递参数。您的 args 数组为空,当您尝试获取空数组的第 0 个元素时,您会得到 IndexOutOfBoundException 以下行需要参数

    n=Long.parseLong(args[0]);

    尝试通过传递参数来运行你的程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多