新手问题:为什么书上的【阶乘的递归】方法中只有if没有else?

bigbro001 2009-09-01 05:19:45
书上的写的代码是:

int facR(int n)
{
int result;
if (n == 1)
return 1;
result = facR(n - 1) * n;
return result;
}


想请教各位java前辈的问题是:为什么书上没有使用else呢,作者不写else是出于什么原因呢?
有else的代码如下:

{
if (n == 1)
return 1;
else
return facR(n - 1) * n;
}
...全文
255 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoch_2000 2009-09-01
  • 打赏
  • 举报
回复
if (n == 1)
return 1;
result = facR(n - 1) * n;



if (n == 1)
return 1;
else
return facR(n - 1) * n;

有区别吗?
warrior30 2009-09-01
  • 打赏
  • 举报
回复
代码的简洁和优雅。
当然现在一般公司都要求代码的可读性。
有时候这两个理念会相悖。看你对代码书写的理解了。
大牛们一般追求代码的简介和优雅。
看google页面的源码,把html得结束符如</html> </head>等都省略了,一般不可能让你那么些的。
dz007 2009-09-01
  • 打赏
  • 举报
回复
为什么要写else………………
zhuzeitou 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dajiadebeibei9 的回复:]
if中的语句都return了,就跳出判断语句了,写上else也不会执行
[/Quote]

我觉得说不写else也不会执行更贴切些~~
dajiadebeibei9 2009-09-01
  • 打赏
  • 举报
回复
if中的语句都return了,就跳出判断语句了,写上else也不会执行
ty_fzpb 2009-09-01
  • 打赏
  • 举报
回复
没有必要写else
因为 如果条件成立 就返回1了 ,下面的语句不会执行……
hbgzg3006 2009-09-01
  • 打赏
  • 举报
回复
因为 facR(n - 1) n=1时 值为0,不影响结果。
KevinZhangYu 2009-09-01
  • 打赏
  • 举报
回复
应该是在语言不同的情况的写法吧。

比如VB 和C# if else 就不一样。

大概是这样吧。
zhuzeitou 2009-09-01
  • 打赏
  • 举报
回复
这个else纯属没有必要唉……
那边都return掉了,后面的代码自然也就不会去执行了,else加与不加也就没有区别了

62,620

社区成员

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

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