ループのコーディング

こういう書き方見かけるけど僕は嫌いだなー


for ( int i = 0; i < array.Length; i++ )
{
if ( array[i].no == no )
{
item = array[i].no; break;
}
}
どこが?といわれると、breakの位置。
処理を増やしたときにbreakに気づかないとこうなってしまう。

for ( int i = 0; i < array.Length; i++ )
{
if ( array[i].no == no )
{
item = array[i].no; break;
a=b;
}
}
こうなるとa=b;の処理は行われません。

warning CS0162: 到達できないコードが検出されました。
って警告はでますけど・・・
上の例は簡単だから気づくけど変数名が長くなって折り返してしまうと気づかない(warningもなぜwarningか気づきにくい)

for ( int i = 0; i < array.Length; i++ )
{
if ( array[i].no == no )
{
item = array[i].no;
break;
}
}
と一行一処理を心がけましょう。