【问题标题】:Why isn't this recursion working in Java? [closed]为什么这种递归在 Java 中不起作用? [关闭]
【发布时间】:2017-04-28 10:32:57
【问题描述】:

我正在尝试计算整数用户输入的阶乘,但它不返回任何内容。为什么?

谢谢。

    import java.util.Scanner;

`class App {

    public static int factorial(int n) {
        if (n == 0) {
            return 1;
        } else {
            int recurse = factorial(n - 1);
            int result = n * recurse;
            return result;
        }
    }

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Enter an integer to calculate its factorial: ");
        int users = input.nextInt();

        factorial(users);

    }
}

【问题讨论】:

  • 它可能会,但您没有以某种方式打印或显示结果
  • System.out.println("factorial = " + factorial(users));
  • Doesn't return statement save me from using sysout?
  • 在方法main中写下Shark所说的,替换掉factorial(users)这一行
  • @AliJ.,不,如果您想打印返回值,则不是。您需要阅读方法的返回值。

标签: java recursion return


【解决方案1】:

您的代码中的问题是您没有给出用于显示输入数字的阶乘的打印语句。仅返回一个值不会打印它。如果是在 BlueJ 环境下工作,则只能通过直接执行方法 factorial 来使用代码。谢谢。

【讨论】:

    【解决方案2】:

    您的代码中的问题是,您没有给出>显示输入数字的阶乘的打印语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-25
      • 2022-11-12
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 2013-11-02
      相关资源
      最近更新 更多