我想知道哪个函数更好,以便找到三个变量之间的最大变量。从我看到的第一个有较少的指示。如果我们添加更多变量,那就没关系。
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");
}
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");
}
}
答案 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; =。否则,如果a
和b
都是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:很抱歉格式化,因为我在手机上。