黑马程序员技术交流社区

标题: void 返回值疑问 [打印本页]

作者: 凝聚    时间: 2013-10-30 12:16
标题: void 返回值疑问
本帖最后由 凝聚 于 2013-10-30 13:26 编辑

1.。。public static void numm(int nu)
        {
                if(nu>0)
                {
                        numm(nu/2);
                        System.out.println(nu%2);
                }
        }
2.。。        public static int getSum(int n)
        {
                if(n==1)
                        return 1;
                return n+getSum(n-1);
        }
这两段代码我觉得都得返回数值啊,怎么第一个函数是void 类型的。而第二个是int 类型的,请具体说一下什么时候需要返回值,什么时候不需要返回值啊?谢谢了


作者: 赵许星    时间: 2013-10-30 12:26
void 代表没有返回值,int 就是一个整形 返回值。
不知楼主学过C吗?在C语言中,void 还有第二个功能:万能类型。比如定义一个 void *p,该指针可以指向任意类型的变量!
作者: 雨过丶天已晴    时间: 2013-10-30 12:55
楼主,我先举个例子吧。
假设你有买饭和吃饭的功能,我叫你去买饭,你买完饭回来,是不是需要给我一盒饭?
但是如果我叫你去吃饭,那你就不需要给我任何东西了。
这里的饭,其实就是返回值,而不给我东西就是void

总结一下就是:
当调用函数需要得到某种结果,以备后用的时候,就需要返回值,就像买饭,我需要得到饭
当调用函数不需要任何结果的时候,就不需要返回值了,就是void,就像吃饭,我不需要得到任何东西
那你前面的疑问就可以解开了吧
希望对楼主有用,不对之处,大家多多指正


作者: 零下五度的水    时间: 2013-10-30 12:57
打个比方,你写了一个程序,如果只是拿来自己练手的,那写完就没下文了,这就相当于没有返回值,
如果是因为老师留了这个作业,那你这个程序就得当成返回值交给老师,这个时候的老师就相当于调用这个方法的地方
作者: 忄雾飞扬    时间: 2013-10-30 13:09
你技术分37分,竟然还问这个问题,我想,你的技术分咋来的,无语,
——好现在说说返回值问题,什么时候需要返回值,不是我说了算,而是你说了算,当你编写的代码需要在……调用的方法运算完后的结果(值)时,你的被调用的方法就需要返回值,相反则不需要。
一句话,方法什么时候需不需要返回值,是由你编写的代码所指定的,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2