黑马程序员技术交流社区

标题: 可不可以第一一个功能,有两个返回值? [打印本页]

作者: mike77546    时间: 2015-1-4 20:23
标题: 可不可以第一一个功能,有两个返回值?
刚才看视频教学,看到求数组中的最大值和最小值,老师用了2个函数:getMax和getMin。我想可不可以用一个函数同时返回最大值最小值?

作者: 叫我小强    时间: 2015-1-4 21:05
将数组排序后获取0角标位置的值和length-1角标的值就可以同时获取到最大值和最小值了。
作者: aa524500    时间: 2015-1-4 21:26
楼上正解,支持一下
作者: AnElse    时间: 2015-1-4 21:27
学习了。。
作者: huoxy    时间: 2015-1-4 21:29
还可以封装一个返回值类,包含最大值最小值2个成员变量。
作者: zhiyi    时间: 2015-1-4 21:37
写个类,建立一个对象,返回对象就行了,可是,没必要啊
作者: xc29417412    时间: 2015-1-4 21:40
哥们,不行啊 。只能返回一个值,不可能返回2个的。如果实在是要输出一个函数输出大小数的话,你可以看下我这个,代码很简陋,不要见笑哈,我是真的用心的哦。

class CollenctionDome
{
        public static void main(String[] args)
        {
           Dx r=new Dx();
          int temp=r.getreturn_two();
           System.out.println(temp);
           System.out.println();

        }
       
       
}
class Dx
{
   public int getreturn_two()
        {
           int[] arr={4,3,5,7,9};
           int pos=0;
       int pos_max=0;
           for(int s=1;s<arr.length;s++)
                {
                if(arr[pos]>arr[s])
                        {
                               arr[pos]=arr[s];
                        }
               
           }
                System.out.println("最小的是"+arr[pos]);
           for(int w=1;w<arr.length;w++)
                {
               if(arr[pos_max]<arr[w])
                        {
                    arr[pos_max]=arr[w];
                   }
                  
           }
                 System.out.println("最大的数是:"+arr[pos_max]);
               
      return   1;
   }

}

作者: zhangyaya    时间: 2015-1-4 23:03
将最大、最小值作为引用参数传给被调函数,被调函数找到最大、最小值后,赋值给引用参数即可。

作者: 些许    时间: 2015-1-4 23:22
路过 打个酱油
作者: '丫头片子'    时间: 2015-1-4 23:23
这个是不行的,这就是java的语法规则,如果你非得想一下返回两个值得话,可以将最大和最小值作为一个对象的属性,然后返回这个对象;然后你就可以通过这个对象来访问最大和最小值,这种实际上也是只有一个返回值,只不过这个返回值是一个对象,而这个对象里面是包含你要的最大值和最小值的
作者: noiary    时间: 2015-1-4 23:28
返回一个数组  int[] arr = {min, max};
作者: 探寻者    时间: 2015-1-4 23:39
其中一位楼上的说的很正确,你可以把数组先排序,然后取0和length-1就是min和max了。
作者: mike77546    时间: 2015-1-5 00:13
noiary 发表于 2015-1-4 23:28
返回一个数组  int[] arr = {min, max};

好想法啊!我试了下可以。
public static int[] getmaxmin(int[]a)
        {
                int max=a[0],min=a[0];
               
                for(int i=0;i<a.length;i++)
                {
                        if(a>max)max=a;
                        if(a<min)min=a;
                }
               int[] getarr={max,min};
                return getarr;
        }
主函数里,int max=getmaxmin(arr)[o];
               int min=getmaxmin(arr)[1];

作者: 落魄逗比    时间: 2015-1-5 13:59
一个函数就实现对应的一个功能,返回两个值的话,计算机会知道你要哪个吗?
作者: xiao_jian    时间: 2015-1-5 14:07
可以先进行升序的排序 第一个是最小 最后一个是最大的
作者: xiao_jian    时间: 2015-1-5 14:09
我用冒泡排序
/**
         * 冒泡排序方法
         * 数组元素大小按升序排列
         * @param 传入一个整型数组
         */
        public static void sort(int[] a) {
                //中间变量temp
                int i,j,temp;
            for(j=0;j<a.length-1;j++)
                for(i=0;i<a.length-1-j;i++)
                {
                    if(a[i]>a[i+1])//数组元素大小按升序排列
                    {
                        temp=a[i];
                        a[i]=a[i+1];
                        a[i+1]=temp;
                    }
                }
            
        }

System.out.println("最小的数是:" + number[0]);
                System.out.println("最大的数是" + number[number.length-1]);
作者: 阿伟哈哈    时间: 2015-1-5 14:23
同时返回最大值和最小值,这样拿到这两个值也不方便。不如直接调用getMax,getMin直接方便
作者: Akm    时间: 2015-1-5 14:28
1. 返回数组 2. 返回对象 3.返回指定格式string 4.其他...




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