Select Case の怖さ
さて表題 Select Case という分岐は実に扱いやすく、非プログラマーからしても視覚的に理解しやすいので、運用後に分岐条件が増えるなら(可能性)この形式も悪くないと思っています。
Private Sub TEST1()
'ShortCircuitEvaluation
Const Value3 As Long = 7
Select Case Value3
Case Is < 9, Is < 4
Debug.Print "9より小さい 4より小さい"
Case Is > 3
Debug.Print "3より大きい"
Case Else
End
End Select
End Sub
上記の問題点に注意すれば、ですよ?
条件比較をし True が出たら以降を比較しないのです
条件1・条件2・条件3とあって、条件1=True なら2・3は評価されない
これもあって、私は if then を使うのが当たり前になっていますね、デバッグに関しての負荷が減りますので。
if then についても 条件1・条件2 を上限にしています。
条件1・条件2・条件3 を同時に比較すると想定外が起きやすくなり、思わぬ誤動作につながります。
(可読的にどうか?という点もあります)
ショートサーキット とか 短絡評価 とか言うらしい?
この記事が気に入ったらサポートをしてみませんか?