将if语句转换为Java中的条件运算符

时间:2016-10-08 19:13:31

标签: java if-statement

如何使用Java中的条件运算符简化此代码? 这是来自博士。梁的Java简介。

public class Test {
    public static void main(String[] args) {
        int i = 3;
        int j = 4;
        int k = max(i, j);
        System.out.println("The max int is " + k);
    }

    public static int max(int num1, int num2) {
        int result;

        if (num1 > num2) {
            result = num1;
        }

        else {
            result = num2;
        }

        return result;

    }
}

4 个答案:

答案 0 :(得分:5)

您可以使用条件三元运算符将事物转换为单线:

return (num1 > num2) ? num1 : num2;

但仅仅是为了记录:保持 max 方法更好;只是为了便于阅读。它帮助在自己的方法中拥有该功能。

但当然:您想了解已经提供 功能的java.lang.Math.max()(不仅适用于 int ,还包括所有其他数字基元类型)还有)!

所以,真正的答案是:是的,使用一种方法进行检查;但不要创建自己的版本;使用默认情况下已经使用Java的那个。换句话说:重新发明轮子。即使它只是像这样的小轮子。

答案 1 :(得分:4)

虽然您可以使用条件运算符? :来实现此

public static int max(int num1, int num2) {
    return num1 > num2 ? num1 : num2;
}

但是,我会喜欢 Math.max(int, int)喜欢

public static int max(int num1, int num2) {
    return Math.max(num1, num2);
}

您也可以选择使用varargs并支持任意数量的int(s)。使用IntStream即可

public static int max(int... nums) {
    return IntStream.of(nums).max().getAsInt();
}

答案 2 :(得分:3)

您可以使用条件三元运算符

int k = (i > j) ? i : j;

此表达式的计算结果为:

如果 j 更好,请将 i 分配给 k 。如果没有,请将 j 分配给 k

答案 3 :(得分:2)

这是修改示例以使用三元运算符的一种方法。

您通常应该将操作员的值保持为短,否则会难以阅读。

public class Test {
    public static void main(String[] args) {
        int i = 3;
        int j = 4;
        int k = max(i, j);
        System.out.println("The max int is " + k);
    }

    public static int max(int num1, int num2) {
        int result;

        result = (num1 > num2) ? num1 : num2;
        return result;

    }
}