递归方法提示第12行缺少返回值,求解释

Adzuki2018 2019-03-19 08:40:22

		
public class fac
{
static int factorial (int n)
{
int pro=1;
if (n>1){
pro=n;
pro*=factorial (n-1);
}
else
return pro;
}
public static void main (String a[])
{
int fac=0;
int n[]={1,2,3,4,5,6,7,8,9,10};
for (int i:n)
fac+=factorial (i);
System.out.printf ("\n%d",fac);
}

}

...全文
156 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-03-19
  • 打赏
  • 举报
回复
if else 会产生2个结果需要分别return 值
qq_43521036 2019-03-19
  • 打赏
  • 举报
回复
不满足Java中严格的规范要求,因为假如时if语句时,那么将没有返回值,所以程序报错,可以将 pro*=factorial (n-1);改为return pro*factorial (n-1);
qybao 2019-03-19
  • 打赏
  • 举报
回复
pro *=那行后面加个 return pro 或者去掉else

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧