フリーエンジニアである下っ端SEの備忘録と日記。日々是精進。 開発言語は主にC#。 開発技術が日々進化し続けている今日、取り残されまいとするも歳のせいか覚えが悪いSE。 ほったらかしですいません。

スポンサーサイト

上記の広告は2週間以上更新のないブログに表示されています。 新しい記事を書くことで広告が消せます。  

Posted by スポンサー広告 at

2009年09月27日

if文の入れ子が嫌い

private void method()
{
 if(A == true)
 {
  if(B == true)
  {
   if(C == true)
   {
    if(D == true)
    {
     処理;
    }
   }
  }
 }
}
みたいなコーディングに出くわしたことがあります。
ものすごい数のif文が入れ子になってるんです。

処理がすごい長くてスクロールしないと最後まで
プログラムが読めず、この括弧 }のスタートはどこの括弧{ だ?
となる時もあります。

余談
こんな時は「{」もしくは「}」のところにカーソルを置いて、
「ctrl」+「}」を押すと、対応する括弧のところに飛んでいってくれます。
(Visual Studioの話。)

さて、コーディングした人が「ある意図を持って」このように書いたのならば
まぁ理解できます。
例えば、
実はもともと各if文には処理がいろいろ書かれていて、仕様変更で処理が不要に
なり今の形になってて、本当は
if(A == true && B == true && C == true && D == true)
{
処理;
}
みたいに書きたいところを
今後も仕様変更が頻繁に行われて条件や処理が増えたり減ったり、
する可能性があるので形としてこのままにしといた。
とか。

わたくし、短気なのでぱっと見、「なんじゃこりゃ~~!!」ってキレて、
よくよくそういう事考えて「・・・ならしょうがないか・・・」って熱が冷めること多々。

わたくしならこの場合
private void method()
{
 if(A == false){return;}
 if(B == false){return;}
 if(C == false){return;}
 if(D == false){return;}

 処理;
}
です。
処理しない条件を頭でカットすると、入れ子にならないから見やすいと思うんです。
あと、条件が変更になれば削除とか追加がしやすいとも思う。

ただ実は人にどうこう言えるほど自信はないのです。
そこがへなちょこSEたる所以。  


Posted by ようすけ at 09:00Comments(0)コンピューター的な事