編寫 Java 程序,從命令行接收一個整數參數,計算其階乘並輸出。需處理參數缺失、非數字、負數等異常情況。

public class MathCal {
public static void main(String[] args) {
try {
if (args.length == 0) throw new ArrayIndexOutOfBoundsException("命令行中沒有提供參數");
String target = args[0];
try {
int targetNumber = Integer.parseInt(target);
System.out.println(getJieCheng(targetNumber));
} catch (NumberFormatException e) {
throw new IllegalArgumentException("輸入必須為整數: " + e.getMessage());
}
} finally {
System.out.println("程序運行結束!");
}
}
/** 遞歸求階乘 */
public static int getJieCheng(int number) {
if (number < 0) throw new IllegalArgumentException("求負數階乘異常!");
if (number == 0 || number == 1) return 1;
return number * getJieCheng(number - 1);
}
}
代碼展示了命令行參數讀取、異常捕獲轉換、遞歸算法及 finally 塊的使用。