使用开关盒的三个数字中最大的一个

时间:2012-07-14 13:25:52

标签: java bluej

我想找出三个给定数字中最大的数字,使用switch-case(不使用if) 我使用这个程序回答了这个问题:

class GreatestNoSwitch{
    public int main(int a, int b, int c){
        int d = (int)Math.floor(a/b);
        int max = 0;
        switch(d){
            case 0:
                max = b;
                break;
            default:
                max = a;
        }

        d = (int)Math.floor(max/c);

        switch(d){
            case 0:
                max = c;
        }
        return max;
    }
}

有没有人有更简单的答案?

2 个答案:

答案 0 :(得分:3)

这有点愚蠢,但是你走了。

switch(1)
{
    default:
        return Math.max(a, Math.max(b, c));
}

答案 1 :(得分:1)

不确定为什么要编写世界上最复杂的代码片段来查找最多三个整数。这个更具可读性,但仍然足够复杂,让你感到愉快...

public int main( int a, int b, int c)
{
    return Collections.max( Arrays.asList( new Integer[]{a,b,c} ));
}