• ベストアンサー

条件分岐でelseは使うべきですか?

言語は問わず1と2のようなやり方があるのですが、どちらがいいとかあるのでしょうか? 1の方が記述量が少ないけど、2の方が可読性が高い。 ケースバイケースなのかもしれませんが、それぞれのメリットデメリットご教示いただけますでしょうか? よろしくお願いいたします。 1 $flag = false; if ($action == 'edit') { $flag = true; } 2 if ($action == 'edit') { $flag = true; } else { $falg = false; }

質問者が選んだベストアンサー

  • ベストアンサー
  • utun01
  • ベストアンサー率40% (110/270)
回答No.4

これだけの処理なら「2」の方が恐らくコスト的には低い(高速)気がしますが、 実際の処理中では「1」の方が可読性も良く、応用性も高いので多用される気がします。 また、「2」で節約できる実行時の機械語的なステップ数も大したことは無いので、単純に可読性、メンテナンス性を求めて場合によって使い分けるのが良いかと思います。

その他の回答 (3)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

「何かセットする」なら確実に初期値を与えてから処理しますね。elseで書いているとあとから条件が増えたときに面倒なので。 例示された程度のものなら、$flag = ($action == 'edit'); で書きますが(汗

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

$action と 'edit' を比較してその真偽を $flag に入れるだけなら, そもそも if 自体が不要なのでは?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

考え方次第ですが、if分岐の前に$flagをかならずfalseで初期化しているなら elseはいらないですね $flagがtrueかfalseかわからない状態で飛んでくるのであれば 明示的な$flagへのデータ投入が必要でしょう。 ただこのくらいの単純なものなら三項演算子で十分ですが・・・ $flag = strcmp($action ,'edit')==0 ? true : false ; ※文字列の比較は書式を気をつけましょう

関連するQ&A