三元运算符
-
结构:(条件表达式)?表达式1 :表达式2
-
说明:
① 条件表达式的结果为 boolean 类型;
②根据条件表达式真或假,决定执行表达式1,还是表达式2
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③表达式1和表达式2要求是一致的。 -
结论:凡是可以使用三元运算符的地方,都可以改写为if-else。反之不成立。
-
如果程序即可以使用三元运算符,又可以使用if - else结构,那么优先选择三元运算符。原因:简洁,执行效率高。
eg1 :获取两个整数的较大值
//解法一:
class SanYuanTest{
public static void main(String[] args){
int m = 12;
int n = 5;
int max = (m > n)? m : n;
System.out.println("max = " + max);
}
}
//解法二:
class SanYuanTest{
public static void main(String[] args){
int m = 12;
int n = 5;
String maxStr = (m > n)? "m大" : (m == n)? "m和n相等" : "n大";//三元运算符可以嵌套使用
System.out.println(maxStr);
}
}
eg2 :获取三个整数的较大值
class SanYuanTest{
public static void main(String[] args){
int a = 12;
int b = 5;
int c = 3;
int max1 = (a > b) ? a : b;
int max2 = (max1 > c)? max1 : c;
// int max2 = (((a > b)? a : b ) > c ) ? ((a > b)? a : b ) : c; 此种方法也可以但是可读性差。不建议这样写
System.out.println("三个数中的最大值为:" + max2);
}
}