2015-08-28 72 views
-1

目標是製作一個程序,其中用戶輸入一個數字作爲命令行參數。輸入的整數將與序列中該位置處的斐波那契數相對應,就像數組一樣。 錯誤是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

回答

4

你錯過傳遞一個命令行參數,所以你在這裏一個例外:

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

你應該在檢查參數之前先檢查:

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

解析它之前更多解析爲整數檢查是否爲參數a數字更精確 –

0

如果您正在使用命令行代碼,你需要傳遞的參數如下:

java <ClassName> <arg1> 

在你的情況,例如:

java Main 10