条件文の書き方


U  2005-05-11 18:15:00  No: 121570

条件文について皆さんのご意見を聞かせてください。
関数の戻り値がTrueの場合、処理をするというときです。
①If Ret = True Then
    処理
  End If

②If Ret <> False Then
    処理
  End If

どちらもOKだと思いますが、人によって違いますよね・・・
皆さんは以上のような場合どちらを使いますか?


GOD  2005-05-11 18:31:27  No: 121571

(3) If Ret Then
        処理
    End If
を使います。
Falseの時は
    If Not Ret Then
        処理
    End If
を使います。
0が正常で0以外が異常値(エラー番号)なんていう時はCBool(Ret)で
    If CBool(Ret) Then
        異常処理
    Else
        正常処理
    End If
として使います。
複数の数字を見たい時はSelect Caseで対応します。


特攻隊長まるるう  2005-05-11 18:56:10  No: 121572

Boolean 型の初期値が False なので、
『True になった時にフラグが立って何かを処理する必要がある』
…という概念を基本に True が印象に残るコーディングを心掛けてるので
>(1)If Ret = True Then
>    処理
>  End If
を使ってます。…というかボクも
(3)If Ret Then
    処理
  End If
ですね。…自作関数で戻り値を1回しか使わないなら
  If 関数 Then
    処理
  End If
というのも使います。
>複数の数字を見たい時はSelect Caseで対応します。
後々、メンテナンスで処理が追加されそうな時によく使ってます(汗)


id_rsa+  2005-05-12 06:13:56  No: 121573

TRUE値の定義って
VB6だと、TRUE = -1 だけど、CだとTRUE = 1TRUE
だったりするから、①は避けた方が良いと思う。。Boolean 型限定なら、話は別だけど・・・・


id_rsa+  2005-05-12 06:14:57  No: 121574

失敗したm(__)m
TRUE値の定義って
VB6だと、TRUE = -1 だけど、CだとTRUE = 1
だったりするから、①は避けた方が良いと思う。。Boolean 型限定なら、話は別だけど・・・・


ねろ  2005-05-12 07:01:40  No: 121575

恥ずかしながらここを見て下さい。痛い目に有っています。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200410/04100037.txt
DLLやAPIを使用した場合、このTrue 、Falseはバグの巣です。
この場合は、True を使用しない方法つまり
If Ret <> False Then
又は
If Ret = False Then
をお勧めします。


とんまのまんポ  2005-05-12 19:14:30  No: 121576

突然すいません
ねろさん勉強になりました。ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加