else句を使わないという選択肢
※else句が悪だと言っている訳ではないです。
else句はとても便利ではあるけど、使いすぎると読みにくいし読む気も起きなくなる。
ので、ちょっと待って、それ本当にelse句使わないといけない?っていうお話です。
例えばこんなコード
function nomoney(){ if(行動 == 'バイトする'){ //正常な時の処理 }else if(行動 == '現実逃避'){ return '現実'; }else if(行動 == '樹海に行く'){ return 'お家'; } }
例はnomoney(お金が無い時)関数で「バイトをする」は「正常」なので「正常な時の処理」をさせる。
もし「現実逃避」と「樹海に行く」ならば、それはおかしい(異常)ので、
「現実逃避」なら「現実」、「樹海に行く」なら「お家」に返す関数です。
これはまだ3つなのでいいですが、もしelse句が続くとしたら....
考えるだけでも気持ちが悪くないでしょうか。
そこで知ってほしいのが「ガード節」です。
具体的には異常系の時は早いうちに返して正常系の物だけ処理しようと言う考え方です。
例をガード節を使い書き直すとこうなります。
function nomoney(){ if(行動 == '現実逃避') return '現実'; if(行動 == '樹海に行く') return 'お家'; //正常な時の処理 }
どうでしょうか。
やってる事としては同じなのに、とてもスッキリ見やすくなったとは思いませんか?
この様にガード節をを用いる事でスッキリと書ける事が多々あります。
ただし、
function nomoney(){ if(行動 == 'バイトする'){ //正常な時の処理 }else if(行動 == '正社員として働く'){ //正常な時の処理 }else if(行動 == '就活する'){ //正常な時の処理 } }
お金が無い時に「バイトをする」「正社員として働く」「就活する」、どれも正しいですよね。
この様なウェイトが同じ(どれも正常系)の場合はガード節の考えに反するので用いるべきでは無いと言うのが一般的(だと思います)です。
以上、else使わない方がスッキリ書ける時があるよと言うお話でした。