tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

空のIF文を書きますか?

ちょっと VB界隈(.Net界隈?)で話題らしい。

空のIF文を書きますか? - Insider.NET

IF (条件) Then
Else
・・・処理
End If

IF〜Elseには何も処理を書かず、Else〜EndIfに処理を書きます。
このようなコードは許容できますか?

オイラは VB はめったに書かない(つーかメンテだけ)けど、「許容できない」に一票でした。むしろ、なぜ許容できるのか理解不能だよなぁ。Not が読みにくいとか意味わかんねぇ。。。

だって、こういうことでしょ?

if ( is_normal_condition() )
{
   //正常。何もしない
}
else 
{
  exceptional_operation();//異常。exceptional_operationを実行!
}

ぱっと見たとき、if と else のどっちが本処理でどっちが例外か分かんねーじゃんか。。。exceptional じゃなくて、additional でも一緒ね。それに、Not 使うほうがコードが短くなるメリットもあるね。VBだとあんまり短くならないみたいだけど。

if ( !is_normal_condition() )
  exceptional_operation();//異常。exceptional_operationを実行!

メソッド名がうまく付くかにもよるけど、条件を反転させることもあるかな。(is_not_hogehoge しか名前を思いつかない場合はやらない)

if ( is_exceptional_condition() )
  exceptional_operation();//異常。exceptional_operationを実行!

当たり前だけど、is_exceptional_condition() は is_normal_condition() の真理値を反転させたやつね。

テストコードがある場合に限るけど、条件式って「ド・モルガンの法則」使って単純化したり、うまくくくり出したり、いろいろグリグリいじれて面白い。すっきりまとまると本当に気持ちが良いし。

あとコメントにあったこれもすげーな。

if (abc) return true; else return false; も嫌です。

こんな書き方するやついるんかい。

素直に

 return abc;

って書けよw