【问题标题】:Recursion example in Java: is return necessary?Java中的递归示例:是否需要返回?
【发布时间】:2019-01-22 18:58:17
【问题描述】:

这里需要return x; 声明吗?无论我使用return x;,打印输出都是一样的 或者我创建了void 方法并且根本不使用return 语句。

package RecursionTry1;

public class RecursionTry {
    public int run(int x)
    {
        if(x<5)
        {
            System.out.println(x);
            run(x+1);

        }
        System.out.println(x);
        return x;  //<---- Do I need this return statement?
    }


    public static void main(String args[])
    {
        RecursionTry A = new RecursionTry();
        A.run(1);
    }
}

【问题讨论】:

  • 你的方法是返回类型int。打印不会返回int。如果您只想在您的方法中打印,您可以将您的方法设为 void 以避免返回 int
  • 是的,但我的问题是为什么这会给您与您使用的相同的打印输出:无效且无返回组合。
  • 你没有在任何地方使用返回值。你也可以return 42;return -1;。没有区别。
  • 对了,输出是5,4,3,2,1,但是自从执行了INNER MOST递归之后,X就变成了5,为什么还是4,3,2,1正在打印?
  • “我不使用返回”(值)并且该方法从不使用返回值,因此它回答了您的问题。

标签: java recursion return


【解决方案1】:

不,您不需要返回任何值。因为你在返回的时候没有使用你的返回值。

例如,如果你有这个代码,那么你需要返回一些东西:

retvalue = run(x)

System.out.println(run(x));

但是你没有使用 run() 函数的返回值 当你不想返回任何东西时,最好使用 void 函数

你可以从Learn java online site, functions page.阅读更多关于java函数的信息

【讨论】:

  • 因为你正在运行 System.out.println(x);然后使用 x + 1 run(x+1); 再次运行该函数;
  • 所以在你的第一次运行中,x 是 1,在第二次运行中,x 是 2,但是如果你使用 System.out.println(run(x+1));那么你应该返回 x 的值,如果这是你的答案,那么请接受这个答案,这样它也可以帮助社区中的其他人
猜你喜欢
  • 2021-12-17
  • 2016-02-13
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
相关资源
最近更新 更多