在Java中处理递归因子函数中的负整数

1 java recursion factorial

我在Java中编写了递归因子函数.该程序工作正常,但我希望函数显示一条消息,如果给定的整数输入是负数并立即退出,而不是递归调用自身.

怎么可能?

Mur*_*nik 5

阶乘操作仅针对非负整数定义.处理这个问题的Java方法就是简单地抛出IllegalArgumentException一个负输入:

public static int factorial (int n) {
    if (n < 0) {
        throw new IllegalArgumentException ("n must be non-negative");
    }
    if (n == 0) {
        return 1;
    }
    return n * factorial (n - 1);
}
Run Code Online (Sandbox Code Playgroud)