プログラミング入門 処理を関数にするとコードが分かりやすくなることをわかりやすく説明

2020年8月2日

まず以下のコードをご覧ください。

const bonusPoint = (currentPoint, currentMonth) => {
  if(currentMonth >= 6 && currentMonth <=9){
    return currentPoint * 0.1
  } else {
    return currentPoint * 0.05
  }
}

続いて以下のコードをご覧ください。上記と同じ結果を返します。

const isSummer = currentMonth => {
  return currentMonth >= 6 && currentMonth <=9
}

const bonusPoint = (currentPoint, currentMonth) => {
  if(isSummer(currentMonth)){
    return currentPoint * 0.1
  } else {
    return currentPoint * 0.05
  }
}

違いはif文の条件部分のみです。

どちらの方がコードの目的がわかるでしょうか。

前者は、if文で6月から9月の間かを判定していますが、これだけだとこの期間が何を指すのか不明です

もしかしたら、このコードは間違っていて、実際は6月から10月までが正しいかもしれません。(何をしたいかがわからないので、これが本当に正しいかの判断も難しい)

一方で後者は、if文の条件部分が isSummer という関数に置き換えられています。isSummer という名前から、夏の期間であるかを判定していることが分かります。目的が明確です。

このように、関数に置き換えると理解がしやすいコードになっています。

特に、複雑な条件文の場合に威力を発揮するので、ぜひお試しください。