FizzBuzzの解法はどちらがより正しいか
FizzBuzz wikipedia:Fizz_Buzz の解法って、手続き型言語においては二種類解法があると思うんですよね。
ざっくりJavaScriptで書くとこんな感じ。
一つ目が、
/** * どんどん文字を足して行くタイプ */ function fizzbuzz(count){ var value = ""; if(count % 3 == 0){ value += "Fizz"; } if(count % 5 == 0){ value += "Buzz"; } if(value.length ==0){ value = String(count); } return value; }
二つ目が、
/** * どんどんreturnしていくタイプ */ function fizzbuzz(count){ if(count % 15 == 0){ return "FizzBuzz"; } if(count % 3 == 0){ return "Fizz"; } if(count % 5 == 0){ return "Buzz"; } return String(count); }
個人的には、例外的な処理、早めに終わる処理を前の方で弾いてネストを浅くするという点で
後者の方がFizzBuzzの解法としては妥当かなと思ってます。
DBアクセスのような複雑な処理が介在する場合だと、最初に処理してreturnとは行かない事も多いですしね。