iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
0

?:條件式(三元運算子)

以下是三元運算子好讀又精簡的例子:

time_str += (hour >= 12) ? "pm" : "am";

少了三元運算子得寫成:

if (hour >= 12){
    time_str += "pm";
} else {
    time_str += "am";
}

但以下三元運算子會變得難以閱讀:

return exponent >= 0 ? mantissa * ( 1 << exponent) : mantissa / (1 << -exponent) ;

重要概念
縮短其他人理解程式所需要的時間,比較減少程式碼行數還要好。

if/else敘述是比較自然的作法:

if (exponent >= 0) {
    return mantissa * ( 1 << exponent);
} else {
    return mantissa * (1 << -exponent);
}

建議
儘量使用 if/else,只在最簡單的情況下使用三元運算子

避免 do/while 迴圈

do/while 迴圈奇怪在於區塊中程式碼是根據底下的條件決定是否重複執行,一般來說邏輯判斷都在區塊上方---if、whilefor都是如此。因為程式碼是由讀到下,這讓do/while不太自然,許多人都得讀2次程式碼。

Reference

  • <<易讀程式之美學-提升程式碼可讀性的簡單法則 >>(The Art of Readable Code)

上一篇
提供控制流程可讀性--1
下一篇
提供控制流程可讀性--3
系列文
易讀程式之美學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言