Visual Basic 6.0(VB6)での演算子の優先順位は何ですか?
特に、論理演算子の場合。
^
-
(単項否定)*
、/
\
Mod
+
、-
(2進加算/減算)&
=
<>
<
>
<=
>=
Like
、Is
Not
And
Or
Xor
Eqv
Imp
出典: Sams Teach Yourself Visual Basic 6 in 24 Hours —付録A:オペレーターの優先順位
デバッガーを使用しているかどうかによって異なります。本当。 そうですね。
もちろん、括弧が最初に来ます。次に、算術 (+、-、、/ など)。次に比較 (>、<、= など)。次に論理演算子。秘訣は、特定の優先レベル内での実行順序が定義されていないことです。次の式を考えます。
If A < B And B < C Then
論理比較<
の前に両方の不等式演算子が評価されることが保証されます。And
ただし、どの不等式比較が最初に実行されるかは保証されません。
IIRC では、デバッガーは左から右に実行されますが、コンパイルされたアプリケーションは右から左に実行されます。 私はそれらを逆にすることもできます (それは長い間です) が、重要なことはそれらが異なるということです. 実際の優先順位は変わりませんが、実行順序は変わる可能性があります。
編集: 新しいコードに対する私のアドバイスです! しかし、オスカーは他人のコードを読んでいるので、どうにかしてそれを理解しなければなりません. VBA マニュアルのトピックOperator Precedenceをお勧めします。VBA は VB6 と 99% 同等であり、式の評価は 100% 同等です。ここに論理演算子の情報を貼り付けました。
論理演算子は、次の優先順位で評価されます。
いいえ と または ソー Eqv インプ
このトピックでは、比較演算子と算術演算子の優先順位についても説明します。
優先順位を把握したら、コードを編集しない正当な理由がない限り、括弧を入れることをお勧めします。