三元运算符
1. 基本语法
条件表达式 ? 表达式 1: 表达式 2; 运算规则:
如果条件表达式为 true,运算后的结果是表达式 1; 如果条件表达式为 false,运算后的结果是表达式 2; 口诀: [一灯大师:一真大师]
2. 案例演示 TernaryOperator.java
分析:b
是先赋值再自减,所以 result = 99
;接着 b 再自减 1
为 98
int a = 10 ;
int b = 99 ;
int result = a > b ? a++ : b-- ;
System. out. println ( "result=" + result) ;
System. out. println ( "a=" + a) ;
System. out. println ( "b=" + b) ;
如果把上面的 b--
改为 --b
,就是先自减再赋值。result = 98
,b
的结果也是 98
3. 三元运算符使用细节
TernaryOperatorDetail.java
表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
int a = 3 ;
int b = 8 ;
int c = a > b ? ( int ) 1.1 : ( int ) 3.4 ;
double d = a > b ? a : b + 3 ;
三元运算符可以转成 if--else
语句
int res = a > b ? a++ : -- b;
if ( a > b ) res = a++ ;
else res = -- b;
4. 课堂练习
int n1 = 553 ;
int n2 = 33 ;
int n3 = 123 ;
int max1 = n1 > n2 ? n1 : n2;
int max2 = max1 > n3 ? max1 : n3;
System. out. println ( "最大数=" + max2) ;
使用一条语句实现, 推荐使用上面方法。下面就是把上面 max1 给替换了下,结果还是一样的
int max = ( n1 > n2 ? n1 : n2) > n3 ?
( n1 > n2 ? n1 : n2) : n3;
System. out. println ( "最大数=" + max) ;