Day9-30.Ternary if-else operator

三元操作符if-else

三元操作符也稱爲條件操作符,它顯得比較特別,因爲它有三個操作數;

但它卻是屬於操作符的一種,因爲它最終也會生成一個值,這與本章下一節中介紹的普通的if-else語句是不同的。

其表達式採取下述形式:

boolean-exp ?value0:value1

如果boolean-exa(布爾表達式)的結果爲true,就計算value0,而且這個計算結果也就是操作符最終產生的值。

如果Boolean-exp的結果爲false,就計算value1,同樣,它的結果也就成爲了操作符最終產生的值。

當然,也可以換用普通的if-else語句(在後面介紹),但三元操作符更加簡潔。

儘管C(C中發明了該操作符)引以爲傲的就是它是一種簡練的語言,而且三元操作符的引入多半就是爲了體現這種高效率的編程,

但假如你打算頻繁使用它,還是要多作思量,因爲它很容易產生可讀性極差的代碼。

條件操作符與if-else完全不同,因爲它會產生一個值,下面是這兩者進行比較的實例:

//: operators/TernaryIfElse.java
import static net.mindview.util.Print.*;

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) {
    print(ternary(9));
    print(ternary(10));
    print(standardIfElse(9));
    print(standardIfElse(10));
  }
} /* Output:
900
100
900
100
*///:~


可以看出,上面的ternary()中的代碼與standardIfElse()中不用三元操作符的代碼相比,顯得更加緊湊;

但standardIfElse()更易理解,而且不需要太多的錄入。

所以在選擇使用三元操作符時,請務必仔細考慮。

發佈了28 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章