3.7.7 三目运算符
3.7.7 三目运算符
三目运算符只有一个:? :
,三目运算符的语法格式如下:
1 | (expression) ? if-true-statement : if-false-statement; |
三目运算符的规则是:先对逻辑表达式expression
求值,如果逻辑表达式返回true
,则返回第二个操作数的值,如果逻辑表达式返回false
,则返回第三个操作数的值。
看如下代码
1 | String str = 5 > 3 ? "5大于3" : "5不大于3"; |
大部分时候,三目运算符都是作为if else
的精简写法。因此,如果将上面代码换成if else
的写法,则代码如下:
1 | String str2 = null; |
三目运算和if else的区别
这两种代码写法的效果是完全相同的。三目运算符和if else
写法的区别在于:if后的代码块可以有多个语句,但三目运算符是不支持多个语句的
三目运算符可以嵌套,嵌套后的三目运算符可以处理更复杂的情况,如下程序所示:
1 | int a = 11; |
上面程序中的输出语句是一个由三目运算符构成的表达式,这个表达式本身又被嵌套在三目运算符中。通过使用嵌套的三目运算符,即可让三目运算符处理更复杂的情况。