黑马程序员技术交流社区

标题: 关于return 是不是当需要返回值的时候写 ,不需要的时候不... [打印本页]

作者: 赵彦丰    时间: 2014-3-25 10:46
标题: 关于return 是不是当需要返回值的时候写 ,不需要的时候不...
昨天看视频 问题不是这个函数 而是return 是不是当需要返回值的时候写 ,不需要的时候不用写?

  1. public static ArrayList singleElement(ArrayList al)
  2.         {
  3.                 //定义一个临时容器。
  4.                 ArrayList newAl = new ArrayList();
  5.                
  6.                 Iterator it = al.iterator();
  7.                
  8.                 while(it.hasNext())
  9.                 {
  10.                         Object        obj = it.next();
  11.                         if(!newAl.contains(obj))
  12.                                 newAl.add(obj);
  13.                        
  14.                 }
  15.                 return newAl;
  16.         }
复制代码




作者: yanzhendong    时间: 2014-3-25 10:49
不是,是根据函数声明,如果函数声明了void类型返回值就不需要写return,如果函数声明了void类型外的任意返回值类型都要明确的写上return
作者: 赵彦丰    时间: 2014-3-25 10:53
yanzhendong 发表于 2014-3-25 10:49
不是,是根据函数声明,如果函数声明了void类型返回值就不需要写return,如果函数声明了void类型外的任意返 ...

:handshake   哦  疑惑了好久
作者: trhthyj    时间: 2014-3-25 12:45
楼上说的很明确了
作者: Mr.__ㄨīn    时间: 2014-3-25 12:54
当你函数有返回值时,你定义的什么返回类型,return后面就要跟什么类型的返回值。
函数没有返回值时,就不要return 返回值类型用void。
你函数定义的是ArrayList类型的返回值,所以return后面的就是ArrayList类型的返回值
作者: 追逐    时间: 2014-3-25 13:01
不是。是根据函数声明。当你在函数声明中加上int,lang等关键字的时候如
public static int show()
pubic static lang show()
想这两种形式的方法就必须写return
如public static void show();
声明函数的地方加上void就不需要写return。但是也只限于有void的声明时,不需要return。如果换成别的声明则必须加上return。
作者: osully    时间: 2014-3-25 13:36
任何一般函数中都存在return语句
只不过 void 无返回值类型 可以省略, 会存在隐式语句(return ;)
作者: 月影释    时间: 2014-3-25 14:03
你的返回值类型不是已经标识出来是arraylist类型么 自然要返回这种类型的
作者: 赵军军    时间: 2014-3-25 18:32
return 是你在子函数声明是声明为int double boolean float等类型时,必须返回一个值。。void也可以返回,可以这样写return;大概就这样。。
作者: 牛头人图腾    时间: 2014-3-25 20:37
只要是函数就要写return语句,构造函数也有return语句、主函数也要renturn语句。你不写,编译器会帮你加上的。return语句的作用一方面是用来结束函数,一方面是用来返回值。如果函数声明了具体类型的返回值,如果你不写编译器不知道要帮你返回什么值,所以要你指定,如果写编译会失败的。




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