我写了斐波纳契系列的代码,但我得到错误ArrayIndexOutofBoundsException。你能帮我么

时间:2014-03-31 18:28:52

标签: java

我为Fibonacci系列编写了代码,但是我收到了错误ArrayIndexOutofBoundsException。你能帮我找一下这个例外的来源吗?

class Fib {
    public static void main(String args[]) {
        int num = Integer.parseInt(args[0]);
        System.out.println("Fibonacci Series");
        int f1, f2 = 0, f3 = 1;
        for (int i = 1; i <= num; i++) {
            System.out.print(" " + f3 + " ");
            f1 = f2;
            f2 = f3;
            f3 = f1 + f2;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

您没有向程序提供任何命令行参数,因此args是一个零长度数组。对零长度数组的任何访问都将产生ArrayIndexOutOfBoundsException

在访问第一个元素(索引args.length)之前,检查1是否至少为0

答案 1 :(得分:0)

我没有测试过您提交的代码,但这里有几条线索:

  • 您正在执行应用程序而没有任何参数。
  • 您应首先检查参数长度是否大于0.
  • 在解析输入参数之前,请检查它是否为数字或使用try / catch包围解析。

我希望这会有所帮助。

祝你好运!