A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

exist

中级黑马

  • 黑马币:16

  • 帖子:53

  • 精华:0

© exist 中级黑马   /  2015-4-26 23:14  /  750 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 exist 于 2015-4-26 23:50 编辑
  1. public static int getSum(int a){
  2.        if(a==1|a==0){
  3.                return 1;
  4.        }
  5.        return a+getSun(a-1);
  6. }
复制代码

return 1是什么意思

13 个回复

倒序浏览
本帖最后由 xiao7181jun 于 2015-4-26 23:29 编辑

return 就是返回值语句呀。return 1就是你执行判断条件后的结果。如果 if语句中的条件  满足的话就执行return 1,   不满足就执行 return a+getSun(a-1);。
这样你如果调用这个函数,然后打印此函数的运算结果的话就会不一样。return 1 就是这个函数的运算结果其中之一。 执行return 1,打印到控制台结果就是 1。
回复 使用道具 举报
if里面的条件是非法表达式
回复 使用道具 举报 1 0
忘言 发表于 2015-4-26 23:49
if里面的条件是非法表达式

= =!不小心少打了个a
回复 使用道具 举报
书上说return 应该是反回给调用者
回复 使用道具 举报
递归,就是在运行的过程中调用自己。
b(0) = 1 [基本情况] Fib(1) = 1 [基本情况] 对所有n > 1的整数:Fib(n) = (Fib(n-1) + Fib(n-2)) [递归定义] 尽管有许多数学函数均可以递归表示,但在实际应用中,递归定义的高开销往往会让人望而却步。例如:
阶乘(1) = 1 [基本情况] 对所有n > 1的整数:阶乘(n) = (n * 阶乘(n-1)) [递归定义] 一种便于理解的心理模型,是认为递归定义对对象的定义是按照“先前定义的”同类对象来定义的。例如:你怎样才能移动100个箱子?答案:你首先移动一个箱子,并记下它移动到的位置,然后再去解决较小的问题:你怎样才能移动99个箱子?最终,你的问题将变为怎样移动一个箱子,而这时你已经知道该怎么做的。
回复 使用道具 举报
就是停下来的  返回值 1 出去
回复 使用道具 举报
exist 中级黑马 2015-4-26 23:54:57
8#
WanLum 发表于 2015-4-26 23:52
递归,就是在运行的过程中调用自己。
b(0) = 1 [基本情况] Fib(1) = 1 [基本情况] 对所有n > 1的整数:Fib( ...

我想知道 return 1 改成return 2  或者别的结果不一样 是如何计算
回复 使用道具 举报
忘言 中级黑马 2015-4-26 23:58:13
9#
看楼主的代码是想打印斐波那契数列吧,当a==1或者a==0的时候,返回1,表示第一个和第二个数都等于1,从第三个数开始,数值大小等于前面两个数之和,所以返回a+getSun(a-1)
回复 使用道具 举报
Dylon 中级黑马 2015-4-27 00:01:04
10#
楼主,从表面上看这是求自然数0~a之间的数的和的程序吧,return 1;就是程序的结束点,要不然程序会一直递归下去。不过前提是 a是大于等于零的自然数。
回复 使用道具 举报
Dylon 中级黑马 2015-4-27 00:03:22
11#
不过if语句中a==0也会返回1,就不是求和的问题了。总之return 1;是结束点。如果程序录入的是负数的话会有问题产生
回复 使用道具 举报
就是递归的结束,递归要有结束的条件
回复 使用道具 举报
来学习 学习
回复 使用道具 举报
exist 发表于 2015-4-26 23:54
我想知道 return 1 改成return 2  或者别的结果不一样 是如何计算

好吧,,你说的对啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马