Frage

Wie ist die Rangfolge der Operatoren in Visual Basic 6.0 (VB6)?

Insbesondere für die logischen Operatoren.

War es hilfreich?

Lösung

Rechenoperation Präzedenzreihenfolge

  1. ^
  2. - (unäre Negation)
  3. *, /
  4. \
  5. Mod
  6. +, - (binäre Addition / Subtraktion)
  7. &

Vergleich Vorgangs- Präzedenzreihenfolge

  1. =
  2. <>
  3. <
  4. >
  5. <=
  6. >=
  7. Like, Is

logische Operation Präzedenzreihenfolge

  1. Not
  2. And
  3. Or
  4. Xor
  5. Eqv
  6. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top