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

时间:2015-06-02 18:13:22

标签: java recursion factorial

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

这怎么可能?

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

在调用递归方法之前,您可以使用以下代码段 -

if(inputNumber<0){
  break;
}else{
  findFactorial(inputNumber);//recursive method call to find factorial
}

答案 2 :(得分:0)

如果找到负数返回功能

if(n < 0) {
   return;
} else {
   findFactorial(n);//recursive method call 
}