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 を同時に比較すると想定外が起きやすくなり、思わぬ誤動作につながります。
(可読的にどうか?という点もあります)

ショートサーキット とか 短絡評価 とか言うらしい?

この記事が気に入ったらサポートをしてみませんか?