【发布时间】: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正在打印?
-
“我不使用返回”(值)并且该方法从不使用返回值,因此它回答了您的问题。