黑马程序员技术交流社区

标题: return语句 的返回值只能有一个吗? [打印本页]

作者: 李复安    时间: 2013-6-13 23:51
标题: return语句 的返回值只能有一个吗?
本帖最后由 李复安 于 2013-6-14 02:20 编辑

今天忽然想到一个问题,return语句的返回值只能有一个吗?

比如说:求一个int型数组中的最大值和最小值的问题,可以通过
定义一个求最大值的getMax函数,return max;    求出最大值;
再定义一个求最小值的getMin函数,return min;   求出最小值。

试问:可不可以定义一个求最大值和最小值的getMaxMin函数,return max,min;   这样的话只需要定义一个函数不用定义两个函数,多方便哪。
           试了试编译失败{:soso_e115:}

度娘说:
(1)返回值只有一个,但是可以通过定义一个类来作为返回类型,然后在类的定义中包含多个返回值作为类的成员。
这样可以达到同样的效果

(2)返回值只能有一个。但是返回的可以使任和的对象。所以你可以把你想要的多个值分装到一个javaBean中。
获取后直接返回这个javaBean。然后用get方法取出来就可以了
(3)只能有一个返回值。但是这个返回值可以是一个结构体或者是一个类,而结构体和类中可以容纳很多信息。
或者你也可以参考函数参数的方式来实现返回你所需要的信息,可以是多个。



请问大家以上三种说法说的对吗?或者还有别的法子吗?
谢谢大家回答、来张图片放松下。。。

QQ截图20130613234951.jpg (65.85 KB, 下载次数: 0)

QQ截图20130613234951.jpg

作者: 许聪聪    时间: 2013-6-14 00:00
先说一下前提,因为return的语句一旦执行,那么立马跳出函数当中
有一点是例外,就是在try,catch,finally当中,即使在catch语句中return了之后,finally中的语句也一定会执行
不知道这样子能不能满足楼主的要求,我的想法是取出最大值,和最小值,然后以字符串的形式返回.
  1. class  Test
  2. {
  3.         public static String getMax(int[] arr)
  4.         {
  5.                 //求最大值的
  6.                 int max = arr[0];
  7.                 for (int x=1;x<arr.length;x++)
  8.                 {
  9.                         if(arr[x]>max)
  10.                         {
  11.                                 max=arr[x];
  12.                         }
  13.                 }
  14.                 //求最小值的
  15.                 int min= arr[0];
  16.                 for (int x=1;x<arr.length ;x++ )
  17.                 {
  18.                         if(min>arr[x])
  19.                                 min=arr[x];
  20.                 }
  21.                 return max+","+min;
  22.         }
  23.         //主函数
  24.         public static void main(String[] args)
  25.         {
  26.                 int[] arr={3,4,5,7,88,6,44,5};
  27.                 String MaxMin = getMax(arr);
  28.                 System.out.println("最大值,最小值分别为"+MaxMin);
  29.         }
  30. }
复制代码

作者: 李复安    时间: 2013-6-14 00:12
许聪聪 发表于 2013-6-14 00:00
先说一下前提,因为return的语句一旦执行,那么立马跳出函数当中
有一点是例外,就是在try,catch,finally当中, ...

太好了,能满足要求,正是想要的答案。
多谢多谢、
作者: 袁梦希    时间: 2013-6-14 00:21
加油  楼主   
作者: 袁梦希    时间: 2013-6-14 00:21
许聪聪 发表于 2013-6-14 00:00
先说一下前提,因为return的语句一旦执行,那么立马跳出函数当中
有一点是例外,就是在try,catch,finally当中, ...

回答的不错
作者: 李复安    时间: 2013-6-14 02:18
袁梦希 发表于 2013-6-14 00:21
加油  楼主

一定一定,多谢青年团长大人、团长大人也努力哈,给我们个榜样
:lol





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