java的三元運算子

來源:互聯網
上載者:User

這種運算子比較罕見,因為它有三個運算對象。但它確實屬於運算子的一種,因為它最終也會產生一個值。這與本章後一節要講述的普通if-else語句是不同的。運算式採取下述形式:

布林運算式 ? 值0:值1

若“布林運算式”的結果為true,就計算“值0”,而且它的結果成為最終由運算子產生的值。但若“布林運算式”的結果為false,計算的就是“值1”,而且它的結果成為最終由運算子產生的值。
當然,也可以換用普通的if-else語句(在後面介紹),但三元運算子更加簡潔。儘管C引以為傲的就是它是一種簡練的語言,而且三元運算子的引入多半就是為了體現這種高效率的編程,但假若您打算頻繁用它,還是要先多作一些思量——它很容易就會產生可讀性極差的代碼。
可將條件運算子用於自己的“副作用”,或用於它產生的值。但通常都應將其用於值,因為那樣做可將運算子與if-else明確區別開。下面便是一個例子:

static int ternary(int i) {
return i < 10 ? i * 100 : i * 10;
}

可以看出,假設用普通的if-else結構寫上述代碼,代碼量會比上面多出許多。如下所示:

static int alternative(int i) {
if (i < 10)
return i * 100;
return i * 10;
}

但第二種形式更易理解,而且不要求更多的錄入。所以在挑選三元運算子時,請務必權衡一下利弊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.