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

まず以下のコードをご覧ください。
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 という名前から、夏の期間であるかを判定していることが分かります。目的が明確です。
このように、関数に置き換えると理解がしやすいコードになっています。
特に、複雑な条件文の場合に威力を発揮するので、ぜひお試しください。
ディスカッション
コメント一覧
まだ、コメントがありません