2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« And Or Notを論理演算と思わないこと。 | トップページ | SendKeysでIMEをバイパスする。 »

2007年3月12日 (月)

If AndAlso や OrElse の代替方法

VB.NETには論理演算のAndAlsoとOrElseがあるけれど、
VBScriptにはないので、その代替方法。

If x AndAlso y AndAlso z Then 処理
の代わりに、

If x Then
  If y Then
    If z Then
      処理
    End If
  End If
End If

と書くと、ネストのインデントが深くなってやーです。
そういうときは、

If Not x Then
ElseIf Not y Then
ElseIf Not z Then
Else
  処理
End If

と書けばよさそうですが、Notを使ってよいのは、x、y、zがBooleanのときだけです

If x AndAlso y=p AndAlso z<>q Then 処理
なら

If x=0 Then
ElseIf y<>p Then
ElseIf z=q Then
Else
  処理
End If

のように書くとよいでしょう。

If x=y OrElse x=z Then 処理
の代替は、

Select Case x
Case y,z
  処理
End Select

If x<>y AndAlso x<>z Then 処理
の代替は、

Select Case x
Case y,z
Case Else
  処理
End Select

« And Or Notを論理演算と思わないこと。 | トップページ | SendKeysでIMEをバイパスする。 »