FizzBuzz問題を考えてみました。

有名なFizzBuzz問題を考えてみました。

■ルール

・1から100まで表示

・3で割り切れる数字は『Fizz』と表示

・5で割り切れる数字は『Buzz』と表示

・3でも5でも割り切れる数字は『FizzBuzz』と表示

 

今回は最近仕事でよく使っているC#で書いてみました。

とりあえず動くことを優先させて何も考えず書いたら以下のようになりました。

実行結果

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
・・・(省略)

実行結果も問題なく動いています。おそらくFizzBuzz問題をググってみたらこんな感じのコードになるのではないでしょうか?

しかし上記コードはまだリファクタリングの余地があると思います。ということでここからさらに改良してみました。

リファクタリング


改良点

・ロジックはメソッドに切り出す

・for文よりforeachにしたほうが1から100までというのが分かりやすい気がした(個人の好み)

・変数名を修正(i→currentNumなど)

・メソッドコメントを記載

ということで以下のようにリファクタリングをしてみました。

今回は書いていませんが、テストコードも書きやすくなったと思います。

ただFizzBuzzくらいのロジックであれば、リファクタリング前の方が見やすいかもしれないですね…。でももし仕事で書くとしたら先のことを考えてリファクタリング後のように書くと思います。

スポンサーリンク

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です