2

我想找出三个给定数字中的最大数字,使用 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;
    }
}

有人有更简单的答案吗?

4

2 回答 2

3

这有点愚蠢,但给你。

switch(1)
{
    default:
        return Math.max(a, Math.max(b, c));
}
于 2012-07-14T13:52:47.830 回答
1

不知道为什么要编写世界上最复杂的代码片段来查找三个整数的最大值。这一个更具可读性,但仍然足够复杂,让您感到有趣......

public int main( int a, int b, int c)
{
    return Collections.max( Arrays.asList( new Integer[]{a,b,c} ));
}
于 2012-07-14T13:41:24.140 回答