- PR -

空のIF文を書きますか?

投票結果総投票数:260
許容できる 85 32.69%
許容できない 148 56.92%
どちらでもよい 27 10.38%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-10-31 12:21
IF (条件) Then
Else
・・・処理
End If

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

社内でちょっとした議論になってまして、アンケートとして投稿します。

個人的にはNotを使うので、上記のようなコードは気持ち悪いと思っています。

くだらない質問ですが、投票よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-10-31 12:26
許容できない派です。

コード:

    if (条件) {
    } else {
        ・・・処理
    }


こう置き換えてみると見慣れていないからかもしれませんが (VB では見慣れているw) 余計気持ち悪く見えますね。 ちなみに CodeComplete ではやってはいけないこととされていました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-10-31 12:37
周りにあわせるという意味で、「どちらでもよい」に投票しました。
自分で書くときは、本当に何もないと違和感があるのでコメントを入れています。
コード:
if (条件) {
    // 何もしない
} else {
    …処理
}



こうすることもあります。
コード:
if (条件) {
    …処理
} else {
    // 何もしない
} 


VB の Not はあまり気にせず使っていますが、C# の ! はぱっと見でわかりにくいので、私自身は積極的には使わない傾向にあります。あ、!= は使いますよ。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-10-31 12:38
許容できる派です。

思いつく理由は今のところ2つあります。

ひとつは、ブレークポイントを仕掛けたいときには、Then のときだけ止めたいなどの場合もあります。そういうときに Then がないと、デバッグのためだけに Then を一時的に追加したり、条件付きブレークポイントの設定をするのは面倒です。

もうひとつは、非常にアルゴリズム的なコードを書いている場合、Then と Else を対にした If をたくさん書かなければならないときがあります。そういうときに対称的に Then と Else を書いていて、たまたまここだけ Then はからっぽだった、というときにコーディング規約で書いてはいけないとなっていると、ストレスになります。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-10-31 12:42
引用:

未記入さんの書き込み (2008-10-31 12:21) より:
個人的にはNotを使うので、上記のようなコードは気持ち悪いと思っています。


ただ、常に Not の代わりにということだったら、私も気持ち悪いと思います。Not を使えと言いたくなります。
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-10-31 12:54
引用:

unibonさんの書き込み (2008-10-31 12:38) より:
もうひとつは、非常にアルゴリズム的なコードを書いている場合



アルゴリズムと呼ばれるほど複雑ではないですね。
理由は「NOT」が読みにくいそうです。
言語はVB(VS.NET)です。
Shane
大ベテラン
会議室デビュー日: 2003/06/06
投稿数: 132
お住まい・勤務地: Vancouver, BC
投稿日時: 2008-11-04 06:11
許容できないです。自分のプロジェクトで誰かがやってたらやめさせると思います。

脱線しますが、if (abc == false) のようなコードをよく見かけますがこれも許容できないです。if (abc) return true; else return false; も嫌です。
馬岱
常連さん
会議室デビュー日: 2007/12/05
投稿数: 21
お住まい・勤務地: 五丈原
投稿日時: 2008-11-04 08:57
拙者もrainさんとほぼ同様の理由でどちらでもよいに投票しました。
後々コメントにする予定でelseの処理を書いたりすることがままあったりするので。
_________________
こえ部やめました(つд`)

スキルアップ/キャリアアップ(JOB@IT)