三元运算符 :
格式 : (条件表达式)? 表达式1 :表达式2;
说明:
1.条件表达式的结果只能是boolean类型
2.如果条件表达式的值为true执行表达式1,否则执行表达式2
3.表达式1和表达式2的类型应该保持一致
如果表达式1和表达式2可以自动类型提升为一种类型,那么也可以。
例:double d = (10 > 5)? 10.5 : 20;
/* 三元运算符 : 格式 : (条件表达式)? 表达式1 :表达式2; 说明: 1.条件表达式的结果只能是boolean类型 2.如果条件表达式的值为true执行表达式1,否则执行表达式2 3.表达式1和表达式2的类型应该保持一致 如果表达式1和表达式2可以自动类型提升为一种类型,那么也可以。 例:double d = (10 > 5)? 10.5 : 20; */ public class TernaryTest{ public static void main(String[] args){ int m = 5,n = 10; int maxNumber = (m > n)? m : n; System.out.println(maxNumber); System.out.println("--------------------------------"); m = n = 10; // m > n 不成立的条件是 m <= n String str = (m > n)? "m大" : "n大"; System.out.println(str); System.out.println("--------------------------------"); //注意 :表达式1和表达式2的类型应该保持一致 double d = (10 > 5)? 10.5 : 20; //因为20可以自动类型提升为doulbe System.out.println(d); System.out.println("--------------------------------"); //需求 :求三个数中的最大值 int a = 5,b = 10,c = 15; /* int max = (a > b)? a : b; int max2 = (max > c)? max : c; */ int max2 = (((a > b)? a : b) > c)? ((a > b)? a : b) : c; System.out.println(max2); } }