Wie ist die Rangfolge der Operatoren in Visual Basic 6.0?
-
09-06-2019 - |
Frage
Wie ist die Rangfolge der Operatoren in Visual Basic 6.0 (VB6)?
Insbesondere für die logischen Operatoren.
Lösung
Rechenoperation Präzedenzreihenfolge
-
^
-
-
(unäre Negation) -
*
,/
-
\
-
Mod
-
+
,-
(binäre Addition / Subtraktion) -
&
Vergleich Vorgangs- Präzedenzreihenfolge
-
=
-
<>
-
<
-
>
-
<=
-
>=
-
Like
,Is
logische Operation Präzedenzreihenfolge
-
Not
-
And
-
Or
-
Xor
-
Eqv
-
Imp
Quelle: Sams Teach Yourself Visuelle Basic 6 in 24 Stunden - Anhang A: Operator Präzedenz
Andere Tipps
Es hängt davon ab, ob Sie im Debugger sind. Wirklich. Na ja, irgendwie.
Klammern stehen an erster Stelle, natürlich. Dann arithmateic (+, -, *, /, etc.). Dann Vergleiche (>, <, =, usw.). Dann werden die logischen Operatoren. Der Trick ist, die Reihenfolge der Ausführung innerhalb eines bestimmten Prioritätsstufe ist nicht definiert. In Anbetracht der folgende Ausdruck:
If A < B And B < C Then
Sie sind die <
Ungleichheit garantieren Betreiber sowohl vor dem logischen And
Vergleich ausgewertet werden. Aber Sie sind nicht die Ungleichheit Vergleich wird ausgeführt ersten garantiert.
IIRC, führt der Debugger links nach rechts, aber die kompilierte Anwendung führt rechts nach links. ich sie zurück haben könnte (es ist eine lange Zeit gewesen ist), aber das Wichtigste ist, sie sind anders . Die tatsächliche Vorrang ändert sich nicht, aber die Reihenfolge der Ausführung könnte.
Verwenden Sie Klammern
EDIT: Das ist mein Rat für neuen Code! Aber Oscar liest Code jemand anderes, so muss es heraus irgendwie aus. Ich schlage vor, das VB6 Handbuch Thema Operator Präzedenz . Leider ist dieses Thema scheint nicht in der MSDN Online VB6 Handbuch , so werde ich die logischen Operator Informationen hier einfügen. Wenn Sie die VB6-Hilfe (die MSDN Library) installiert werden Sie es auf Ihrem Rechner haben.
Logische Operatoren werden in der folgenden Reihenfolge der Rangfolge ausgewertet:
Not And Or Xor Eqv Imp
Das Thema wird auch Vorrang für den Vergleich und die arithmetischen Operatoren.
Ich würde vorschlagen, wenn Sie die precendence herausgefunden haben, können Sie in Klammern gesetzt, es sei denn es einige gute Grund ist nicht, den Code zu bearbeiten.