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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

分析以下需求,并用代码实现(每个小需求都需要封装成方法)

         (1).求两个数据之和(整数和小数)

         (2).判断两个数据是否相等(整数和小数)

         (3).获取两个数中较大的值(整数和小数)

         (4).获取两个数中较小的值(整数和小数)
                 
         (5).否能用一个方法实现3和4的两个功能

请问第五个问题该怎么用代码实现啊?如果在方法写2个返回值,会报错啊。

来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

14 个回复

倒序浏览
用形参来辨认是哪个功能,返回不同的值
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
在方法内部做比较,新建一个数组,依次将两个数存到数组里面,然后返回数组,就可以获得哪个大,哪个小了啊。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
可以添加形参做判断,或者用容器装起来返回。

public class Test {
       
        public static void main(String[] args) {
               
                double max = compare(true, 0.5, 56, 0.3, -0.23);
                System.out.println("最大值为:" + max);
               
                double min = compare(false, 0.5, 56, -0.23);
                System.out.println("最小值为:" + min);
        }

        //compare为true,返回最大值,否则返回最小值;
        public static double compare(boolean compare, double... array) {

                double max = array[0];
                double min = array[0];

                for (int i = 0; i < array.length; i++) {
                        if (max < array[i]) {
                                max = array[i];
                        }
                        if (min > array[i]) {
                                min = array[i];
                        }
                }

                if (compare == true) {
                        return max;
                }
                return min;

        }
}

打印结果:

最大值为:56.0
最小值为:-0.23
回复 使用道具 举报
黎明如约而至 发表于 2017-6-3 20:33
可以添加形参做判断,或者用容器装起来返回。

public class Test {

谢谢大神

有个疑问:用数组装起来返回,接受的也是个数组。我想把最大值分别付给两个变量,这样怎么操作啊?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
黎明如约而至 发表于 2017-6-3 20:33
可以添加形参做判断,或者用容器装起来返回。

public class Test {

我再好好研究下
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
黑马王大锤 发表于 2017-6-3 17:39
在方法内部做比较,新建一个数组,依次将两个数存到数组里面,然后返回数组,就可以获得哪个大,哪个小了啊 ...

接受的是整个数组,那么接受后该如何把最大值和最小值分别赋值给两个变量呢?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回答的好热闹啊
回复 使用道具 举报
奔向光明 发表于 2017-6-3 22:13
接受的是整个数组,那么接受后该如何把最大值和最小值分别赋值给两个变量呢?
...

存的时候把最小值存第一个位置,把最大值存最后一个位置。
然后用索引取出来就行了
回复 使用道具 举报
public class MyTest {

        // 传入两个值,把小的放前面,大的放后面,装进数组返回;
        public static int[] compare(int a, int b) {
                if (a < b) {
                        int[] arr = { a, b };
                        return arr;
                } else {
                        int[] arr = { b, a };
                        return arr;
                }
        }

        // 测试compare()方法;
        public static void main(String[] args) {
                int[] arr = compare(8, 7);
                // 取出最小值和最大值;
                int min = arr[0];
                int max = arr[1];

                System.out.println("最大值:" + max + ",最小值为:" + min);
        }

}
回复 使用道具 举报
这是方法的重载啊,待会上代码哈,哥们现在在基础班么?
回复 使用道具 举报
lyh20093867 发表于 2017-6-5 08:20
这是方法的重载啊,待会上代码哈,哥们现在在基础班么?

是啊,没什么基础,大神多指教哈
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
其实要实现功能并不难,主要是看到底考察哪个知识点
我认为这道题的纠结点是返回值是不同类型的应该怎么办
不论是用返回值是数组还是具体数据类型,返回值类型都是确定的
回复 使用道具 举报
小白--zz 发表于 2017-6-5 11:53
其实要实现功能并不难,主要是看到底考察哪个知识点
我认为这道题的纠结点是返回值是不同类型的应该怎么办 ...

对的,一个方法里传入不同类型的参数,楼主要求的是传入整数和小数,楼上是分开实现的,我不确定楼主意思是要一个方法里面实现还是不同方法实现。
回复 使用道具 举报
public static double maxANDmin(boolean b,double d1 , double d2) {
                if(b)return d1>d2? d1 : d2;
                else return d1<d2? d1 : d2;
        }
只能想到这了.........传true 获取大的 传false 获取小的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马