Visual Basic 6.0(VB6)での演算子の優先順位は何ですか?
特に、論理演算子の場合。
^-(単項否定)*、/\Mod+、-(2進加算/減算)&=<><><=>=Like、IsNotAndOrXorEqvImp出典: 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 インプ
このトピックでは、比較演算子と算術演算子の優先順位についても説明します。
優先順位を把握したら、コードを編集しない正当な理由がない限り、括弧を入れることをお勧めします。