スポンサーリンク

[VisualBasic]複数条件でAndAlsoとOrElseを使って判定処理を早くする

VisualBasic辞典

複数条件での処理をスピードアップ

通常のIF文などでの条件分岐で、複数の条件を記述する場合は「And」や「Or」を使用します。しかし、実はその記述では無駄な処理を行ってしまう可能性がありますので、「AndAlso」や「OrElse」を使用して、処理のスピードアップを目指す事ができます。

「AndAlso」の説明

例えば以下のような条件分岐があるとします。

If intX > 10 And intX < 20 Then
  '何かの処理
End If

この場合、まず intX > 10 を判定して、その結果の真偽に関係なく次の int < 20 も判定処理が走ります。

しかし、「intX > 10」がFalseの場合は、この分岐に入る条件に一致しないので、「intX < 20」を判定する処理は無駄だということになります。

そういった場合に「And」の代わりに「AndAlso」を使えば、上記の無駄な処理を行う事がなくなります。

使い方の例

If intX > 10 AndAlso intX < 20 Then
  '何かの処理
End If

 

「OrElse」の説明

同様に「Or」についても無駄な処理が発生する可能性があります。

If intX = 15 Or intX = 25 Then
  '何かの処理
End If

この場合は intX = 15 を判定して、その真偽に関わらず次の intX = 25 の判定処理を行います。

もし「intX = 15」がTrueの場合は、もうこの条件分岐の中に入る事は確定していますので、後ろの「intX = 25」を判定する処理は必要はありません

この場合も「Or」でなく「OrElse」を使えば、「intX = 15」がTrueの場合は次の判定を行わなくなり、効率的な処理になります。

使い方の例

If intX = 15 OrElse intX = 25 Then
  '何かの処理
End If

 

まとめ

ここでご紹介しました例のように、分岐条件が2つの場合ではあまり効果的では無いかも知れませんが、もっと沢山の複数条件が必要な場合には効果を発揮します。

大概のプロプログラマーは、「AndAlso」と「OrElse」を使っていますので、覚えておいて頂ければと思います。

 

タイトルとURLをコピーしました