目次→
演算子→
短絡演算子→
Operator ANDALSO (Short Circuit Conjunction)←オリジナル・サイト
2つの数値の、短絡 AND(論理積) を返します。
構文:
用法:
result = lhs AndAlso rhs
パラメタ:
lhs
式の左側
T1
数値型か論理型のいずれか。
rhs
式の右側。
T2
数値型か論理型のいずれか。
Ret
数値型か論理型 (T1 と T2 によって変わる)
戻り値:
二つの演算対象の、短絡 AND (論理積) を返します。
記述:
この演算子は、式の左側を評価します。結果がゼロなら、ゼロがすぐに返されます。左側の結果がゼロでない場合には、右側を評価します。そして、その論理的な結果を返します。
(ブール値の整数への変換では、ブール値の偽は 整数値 0 に、真は -1 になります)
以下の真理値表は、短絡 AND 演算のすべての組み合わせを示しています。
'-' は、演算対象(被作用子)が評価されないことを示します。
Lhs の値 |
Rhs の値 |
結果 |
0 |
- |
0 |
nonzero |
0 |
0 |
nonzero |
nonzero |
-1 |
短絡は、結果を計算する必要のある式だけを評価する、ということを実現します。
左側の
lhs が最初に評価され、ゼロ以外(true)と評価された場合にのみ、右側の
rhs が評価されます。
左側の評価
lhs がゼロ(false)の場合、その時点で全体的な条件が false であることがわかっているので、右側の
rhs は評価されません(スキップされます)。
戻り型は、常に
Integer の、
0 か
-1 で、それぞれ偽と真を示します。
左側と右側の両方の型が
Boolean である場合以外は、戻り型も
Boolean です。
この演算子は、ユーザ定義型のために、多重定義できません。
例:
'' インデックスが範囲外の場合に、
'' 配列アクセスを警戒するために ANDALSO 演算子を使います
Dim As Integer isprime(1 To 10) = { _
_ ' 1 2 3 4 5 6 7 8 9 10
0, 1, 1, 0, 1, 0, 1, 0, 0, 0 _
}
Dim As Integer n
Input "1 〜 10 の数を入力して下さい: ", n
'' n が範囲内のときだけ、isprime() 配列はアクセスできます
If (n >= 1 And n <= 10) andalso isprime(n) Then
Print ": 入力した数は 素数"
Else
Print ": 入力した数は 素数ではないか、範囲外"
End If
Sleep
QBからの違い:
参照: