ArrayIndexOutOfBoundsException使用Java中的简单命令行程序需要帮助

时间:2015-08-28 05:20:20

标签: java command-line-arguments

目标是创建一个程序,用户输入一个数字作为命令行参数。输入的整数将与序列中该位置的斐波纳契数对应,如数组。 错误是

  

线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:0

public class Main {

    public static void main (String[] args)
    {

        int x = Integer.parseInt(args[0]);
        System.out.println(fibonacci(x));
    }
    public static int fibonacci(int n)  {
        if(n == 0)
            return 0;
        else if(n <= 2)
            return 1;
        else
            return fibonacci(n - 1) + fibonacci(n - 2);
    }
}

2 个答案:

答案 0 :(得分:4)

您错过了传递命令行参数,因此您在此处获得了一个例外:

 int x = Integer.parseInt(args[0]);

你应该先判断参数:

if (args.length>0){
   int x = Integer.parseInt(args[0]);
} else {
   //print usage
}

答案 1 :(得分:0)

如果使用命令行运行代码,则需要按如下方式传递参数:

java <ClassName> <arg1>

在您的情况下,例如:

java Main 10