質問
Visual Basic 6.0 (VB6) の演算子の優先順位は何ですか?
特に論理演算子に関してはそうです。
解決
算術演算の優先順位
^
-
(単項否定)*
,/
\
Mod
+
,-
(バイナリ加算/減算)&
比較演算の優先順位
=
<>
<
>
<=
>=
Like
,Is
論理演算の優先順位
Not
And
Or
Xor
Eqv
Imp
他のヒント
それは、デバッガを使用しているかどうかによって異なります。 本当に。 まあ、ある意味。
もちろん、括弧が最初に来ます。次に算術演算 (+、-、、/ など)。次に比較 (>、<、= など)。次に論理演算子です。重要なのは、特定の優先レベル内での実行順序が定義されていないことです。次の式を考えます。
If A < B And B < C Then
あなたは保証されています <
不等演算子は両方とも論理演算の前に評価されます。 And
比較。ただし、どの不等式比較が最初に実行されるかは保証されません。
IIRC では、デバッガは左から右に実行されますが、コンパイルされたアプリケーションは右から左に実行されます。 それらを逆にすることもできますが(長い時間がかかりました)、重要なのはそれらが異なるということです。実際の優先順位は変わりませんが、実行順序は変わる可能性があります。
括弧を使用する
編集:それが新しいコードに対する私のアドバイスです。しかし、オスカーは他の人のコードを読んでいるので、何らかの方法でそれを理解する必要があります。VB6 マニュアルのトピックをお勧めします 演算子の優先順位. 。残念ながら、このトピックは MSDNオンラインVB6マニュアル, そこで論理演算子の情報をここに貼り付けます。VB6 ヘルプ (MSDN ライブラリ) をインストールしている場合は、マシン上にあります。
論理演算子は次の優先順位で評価されます。
Not And Or Xor Eqv Imp
このトピックでは、比較演算子と算術演算子の優先順位についても説明します。
優先順位を理解したら、コードを編集しない正当な理由がない限り、括弧を入れることをお勧めします。