8.5 Rangfolge von Operatoren

Die meisten Operatoren liegen als binäre Operatoren vor. Diese benötigen zwei Operanden, auf die sie angewendet werden. Unnäre Operatoren dagegen verändern nur einen Operanden. Bei den einzelnen Operationen unterscheidet man nach Priorität und Assoziativität, wenn mindestens 2 Operatoren in einer Anweisung vorhanden sind.


Operator Priorität – Rang – Rangfolge
- (Vorzeichen) , NOT maximal
IS 11
& 9
&/ 8
^ 7
* / DIV \ MOD % 6
+ - 5
= <> >= <= > < LIKE BEGINS ENDS 4
OR AND XOR 2

Tabelle 8.5.1: Rangfolge von Operatoren

Beispiel:

[1] Dim sElement As String
[2] Dim aMatrix As String[]
[3] 
[4] ...
[5] aMatrix = Split(tts, " ")
[6] For Each sElement In aMatrix
[7]   ' If TypeOf(Val(sElement)) <= gb.Float = True Then
[8]     If [TypeOf(Val(sElement)) <= gb.Float] = True Then
[9]   ' If (IsNumber(Val(sElement)) = True) = True Then ' Ohne Fehlermeldung
[10]    sText = sText & " " & sElement
[11]    ...
[12] Next ' sElement
[13] ...

Der Code in der Zeile 7 löste einen Fehler aus. Es kam folgende Fehlermeldung, die auch gleichzeitig den richtigen Weg wies:

Unklarer Ausdruck. Bitte setzen Sie eckige Klammern in FMain.class:1234

Aber auch mit runden Klammer verschwand die Fehlermeldung, wie der adäquate Quelltext in der Zeile 9 zeigte.

Download