カテゴリー別アーカイブ: リファクタリング

ド・モルガンの法則で条件文を分かりやすくしてみる

投稿日: 2017/03/30

コードレビューをしているときに以下のようなコードが現れて、

for ($i = 0; ! ($i > $limit || $i >= count($list)); $i++) {
	// $list[$i]; を使って何かする処理
}

このfor文の条件を理解するのに時間が少しかかりました。

要は、

  • 最大で$limit回
  • 最小で$listの要素数分

ループ中の処理が行われる

というものになるのですが、ぱっと見て分かりますか?自分は分からなさ過ぎて、自分で別途デバッグしてしまいましたorz

それにしても、なんでこんなに分かりづらいのかなぁ、僕がアホなだけなのかなぁと、小一時間考えてみたところ、

  • 条件が(複数)あってさらに否定がかまされている
    • 結局どっちやねんとなってしまう

という部分が分かりづらい要因なんじゃないかと自分は思ったわけです。
(自分がアホなだけという部分も否定しませんが)

では、上記のコードが以下だったらどうでしょうか。
続きを読んでみようかな…