パンくず
リファクタリング-プログラマーの体質改善テクニック
条件式の単純化
制御フラグの削除
内容
リファクタリング名
制御フラグの削除
適用ケース要約
一連の論理式で使われる制御フラグとして機能している変数がある
適用内容要約
代わりにbreakやreturnを使う。
適用詳細
分岐にフラグを利用していた場合、breakやreturnで終了することを検討する。
サンプル
メッセージをランダムな回数出力する機能を実装します。
サンプルコード
# encoding: Shift_JIS def random_output(message) flag=true count=0 while flag count+=1 puts "#{count}回目:#{message}" flag = false if rand(10) > 7 end end random_output("hoge") random_output("hoo")
# encoding: Shift_JIS def random_output(message) flag=true count=0 loop do count+=1 puts "#{count}回目:#{message}" break if rand(10) > 7 end end random_output("hoge") random_output("hoo")
出力(共通)※出力内容はランダムに回数が変わる
1回目:hoge 2回目:hoge 1回目:hoo 2回目:hoo 3回目:hoo 4回目:hoo 5回目:hoo 6回目:hoo 7回目:hoo 8回目:hoo 9回目:hoo