Java唯一的三元運算子(ternary operator)為booleanExpression ? expression1 : expression2
又稱為條件運算子(conditional operator)用法如下。
ternary operator其實就是if {...} else {...}
的簡短寫法。
三元運算子的?
前面要放的是布林表示式,也就是說表示式的結果必須為boolean值。
三元運算子的?
後面則為前面布林表示式結果要返回的值。
若?
前面的布林表示式結果為true,則返回?
後,:
前的值;
若布林表示式結果為false,則返回:
後的值。
boolean result1 = true ? true : false;
System.out.println(result1); // true
String result2 = true ? "A" : "B";
System.out.println(result2); // A
String result3 = false ? "A" : "B";
System.out.println(result3); // B
String result4 = (result3.length() > 1) ? "A" : "B";
System.out.println(result4); // B
工作中發現不少人有下面的奇怪寫法。由於checkOperation()
的結果已經是布林直接回傳即可,但卻多此一舉再用三元運判斷並返回true
或false
。
boolean success = checkOperation();
return success == true ? true : false; // <-- 不要這樣寫
改成下面既清楚又簡短。
return checkOperation();
沒有留言:
張貼留言