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

问题描述:

目标是制作一个程序,其中用户输入一个数字作为命令行参数。输入的整数将与序列中该位置处的斐波那契数相对应,就像数组一样。 错误是ArrayIndexOutOfBoundsException在Java中需要使用简单的命令行程序

异常线程 “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); 
    } 
} 
+1

你是如何调用PROG – Satya

+2

显示您正在使用的命令行参数... – Coderchu

+0

使用java Main 12调用prog并查看它是否工作 – Satya

你错过传递一个命令行参数,所以你在这里一个例外:

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

你应该在检查参数之前先检查:

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

解析它之前更多解析为整数检查是否为参数a数字更精确 –

如果您正在使用命令行代码,你需要传递的参数如下:

java <ClassName> <arg1> 

在你的情况,例如:

java Main 10