🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## [三元运算符](https://lingcoder.gitee.io/onjava8/#/book/04-Operators?id=%e4%b8%89%e5%85%83%e8%bf%90%e7%ae%97%e7%ac%a6) 三元运算符,也称为条件运算符。这种运算符比较罕见,因为它有三个运算对象。但它确实属于运算符的一种,因为它最终也会生成一个值。这与本章后一节要讲述的普通**if-else**语句是不同的。下面是它的表达式格式: **布尔表达式 ? 值 1 : 值 2** 若表达式计算为**true**,则返回结果**值 1**;如果表达式的计算为**false**,则返回结果**值 2**。 当然,也可以换用普通的**if-else**语句(在后面介绍),但三元运算符更加简洁。作为三元运算符的创造者, C 自诩为一门简练的语言。三元运算符的引入多半就是为了高效编程,但假若我们打算频繁使用它的话,还是先多作一些思量: 它易于产生可读性差的代码。与**if-else**不同的是,三元运算符是有返回结果的。请看下面的代码示例: ~~~ // operators/TernaryIfElse.java public class TernaryIfElse { static int ternary(int i) { return i < 10 ? i * 100 : i * 10; } static int standardIfElse(int i) { if(i < 10) return i * 100; else return i * 10; } public static void main(String[] args) { System.out.println(ternary(9)); System.out.println(ternary(10)); System.out.println(standardIfElse(9)); System.out.println(standardIfElse(10)); } } ~~~ 输出结果: ~~~ 900 100 900 100 ~~~ 可以看出,`ternary()`中的代码更简短。然而,**standardIfElse()**中的代码更易理解且不要求更多的录入。所以我们在挑选三元运算符时,请务必权衡一下利弊。