如何使用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;
}
}
答案 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;
}
}