哪个函数更好,以便找到三个变量之间的最大整数变量

时间:2016-09-28 14:00:49

标签: java if-statement

我想知道哪个函数更好,以便找到三个变量之间的最大变量。从我看到的第一个有较少的指示。如果我们添加更多变量,那就没关系。

功能1

 public static void  printLargest(int a, int b, int c)
    {
            if(a > b && a > c)
                System.out.println("a");
            else if(b > a && b > c)
                System.out.println("b");
            else 
                System.out.println("c");
    }

功能2

public static void printLargest(int a, int b, int c)
    {
        if( a > b)
        {
            if(a < c)
                System.out.println("C");
            else
                System.out.println("A");
        }
        else
        {
            if(b < c)
                System.out.println("C");
            else
                System.out.println("B");
        }
    }

3 个答案:

答案 0 :(得分:2)

代码行数和代码可读性以下2行的内容将会显示所需的功能并给出答案

int larg = a>b ? a : b;
int larg2 = larg>c ? larg : c;   

 System.out.println("\nLargest among numbers " +  a +", "+ b + " and "+ c + " is : " + larg2); 

答案 1 :(得分:1)

函数2平均执行较少的比较,但它更难以阅读,并且在c是最大数字的情况下重复代码。因此,我强烈支持功能1.

但是,您应该将比较更改为&gt; =。否则,如果ab都是3且c是2,那么它将回答c,这可能不是您想要的。

答案 2 :(得分:0)

为什么不尝试递归以获得更简单,更清晰的方法。

System.out.println("Greatest is :"+findLargest(findLargest(a,b),c));

public static int findLargest(int a, int b){
if(a>b)
    return a;
else
    return b;
}

PS:很抱歉格式化,因为我在手机上。