一、格式
(条件表达式)? 表达式1:表达式2
1.条件表达式是如果为 true (非0值),就执行表达式1,否则执行表达式2。
2.如果运算后的结果赋给新的变量,要求表达式1和表达式2为同种或兼容的类型
二、追求可读性
如:获取三个数中的最大值
第 1 种写法:
int tempMax = (n1 > n2) ? n1 : n2;
int finalMax = (tempMax > n3) ? tempMax : n3;
第 2 种写法:
int finalMax1 = (((n1 > n2) ? n1 : n2) > n3) ? ((n1 > n2) ? n1 : n2) : n3;
从上面两种写法也很容易可以看出用哪一种更合适了吧:当然是第 1 种了,第二种看的我是直崩溃了,但凡眼神差一点都看不懂在干啥。
三、与 if-else 的对比
1.凡是可以使用条件运算符的,都可以改写为if-else结构,反之不成立
2.能用条件运算符就用,因为效率高