文章目录
三元运算符
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);