java 提供了三元運算符(也叫三目運算符)可以用來代替 if else
語句。有的時候使用三元運算確實比 if else
要簡潔的多(個人認爲)。
語法
result = <expression> ? <operation1> : <operation2>;
因爲使用三元運算時需要有三個操作數,所以稱爲三元運算符。expression
是一個布爾表達式。當 expression
爲 true
時,執行 operation1
, 否則就執行 operation2
。這樣既可實現簡單的二分支程序。
示例1
普通 if else
表達
boolean find;
if (10 > 20) {
find = true;
} else {
find = false;
}
System.out.println(find);
三元運算符表達
boolean find = 10 > 20 ? true : false;
System.out.println(find);
相比之下三元運算無疑更加方便,簡潔。
示例2
三元運算可以取代一般的 if else
語句,僅當 if else
語句中內嵌的語句爲賦值語句(且兩個分支都給同一變量賦值)時才能代替 if else
語句。
if (10 > 20) {
System.out.println(10);
} else {
System.out.println(20);
}
// 不能寫爲以下方式
10 > 20 ? System.out.println(10) : System.out.println(20);
// 需要這樣定義
System.out.println(10 > 20 ? 10: 20);
對了,三元運算支持嵌套,但是個人不推薦使用嵌套,會變的難以理解,如下所示,兩個表達式是相等的。
// x > 0 嗎? true 返回 1, false 接着判斷 x < 0 嗎? true 返回 -1 false 返回 0
x > 0 ? 1 : x < 0 ? -1 : 0
// 同上
x > 0 ? 1 : (x < 0 ? -1: 0)