2.2 Operatoren
Zum Zusammensetzen von Ausdrücken werden in Visual Basic, wie in jeder anderen Programmiersprache auch, Operatoren verwendet. In diesem Buch wurden schon die Operatoren = für Zuweisungen und & für Verkettungen verwendet.
Es gibt verschiedene Kategorien von Operatoren. Vorrangregeln (Prioritäten) sind für die Reihenfolge der Abarbeitung zuständig, falls mehrere Operatoren innerhalb eines Ausdrucks verwendet werden. Diese Vorrangregeln sind weiter unten in diesem Abschnitt angegeben. Falls Sie sich bei der Verwendung dieser Regeln nicht sicher sind, so empfiehlt es sich, durch eigene Klammersetzung die Reihenfolge explizit festzulegen.
2.2.1 Rechenoperatoren

Rechenoperatoren dienen zur Durchführung von Berechnungen, siehe Tabelle 2.1.
Operator | Beschreibung |
- |
|
Die Ganzzahl-Division wird in zwei Schritten durchgeführt. Im ersten Schritt werden Dividend und Divisor einzeln gerundet. Im zweiten Schritt werden die beiden verbliebenen Zahlen geteilt, anschließend werden die Ziffern nach dem Komma abgeschnitten.
Tabelle 2.2 zeigt einige Beispiele.
Ausdruck | Ergebnis |
19 / 4 |
4.75 |
19 \ 4 |
4 |
19 \ 4.6 |
3 |
19.5 \ 4.2 |
5 |
Der Modulo-Operator Mod berechnet den Rest einer Division. Einige Beispiele sehen Sie in Tabelle 2.3.
Ausdruck | Ergebnis | Erklärung |
19 Mod 4 |
3 |
19 durch 4 ist 4 Rest 3 |
19.5 Mod 4.2 |
2.7 |
19,5 durch 4,2 ist 4 Rest 2,7 |
Zur Potenzierung einer Zahl dient der Operator ^ (hoch), Beispiele siehe Tabelle 2.4.
Ausdruck | Ergebnis |
2 ^ 5 |
32 |
3 ^ 2 ^ 3 |
729 |
2 ^ 5.4 |
42.2242531447326 |
(-2) ^ 5 |
–32 |
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig und werden von links nach rechts in der Reihenfolge ihres Auftretens ausgewertet. Dasselbe gilt für Additionen und Subtraktionen, die zusammen in einem Ausdruck auftreten. Multiplikation und Division werden vor Addition und Subtraktion ausgeführt.
Mit Klammern können Sie diese Rangfolge außer Kraft setzen, damit bestimmte Teilausdrücke vor anderen Teilausdrücken ausgewertet werden. In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Innerhalb der Klammern gilt jedoch die normale Rangfolge der Operatoren.
Alle Berechnungen innerhalb dieses Abschnitts können Sie auch mithilfe des Codes im Projekt Rechenoperatoren nachvollziehen.
Übung
Berechnen Sie die beiden folgenden Ausdrücke, speichern Sie das Ergebnis in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:
- 1. Ausdruck: 3 * –2.5 + 4 * 2
- 2. Ausdruck: 3 * (-2.5 + 4) * 2
2.2.2 Vergleichsoperatoren

Vergleichsoperatoren (siehe Tabelle 2.5) dienen dazu festzustellen, ob bestimmte Bedingungen zutreffen oder nicht. Das Ergebnis nutzt man unter anderem zur Ablaufsteuerung von Programmen. Abschnitt 2.4 geht hierauf genauer ein.
Operator | Beschreibung |
kleiner als oder gleich |
|
größer als oder gleich |
|
Einige Beispiele sehen Sie in Tabelle 2.6.
Ausdruck | Ergebnis |
5 > 3 |
True |
3 = 3.2 |
False |
5 + 3 * 2 >= 12 |
False |
Darüber hinaus gibt es noch den Operator Like, der zum Mustervergleich dient. Dabei können Sie unter anderem die Platzhalter * (eines oder mehrere Zeichen) und ? (genau ein Zeichen) einsetzen. Tabelle 2.7 zeigt einige Beispiele.
Ausdruck | Ergebnis |
"abxba" Like "a*a" |
True |
"abxba" Like "a?a" |
False |
"aba" Like "a?a" |
True |
"asdlfigc" Like "a?d?f*c" |
True |
Alle Vergleiche innerhalb dieses Abschnitts können Sie auch mithilfe des Codes im Projekt Vergleichsoperatoren nachvollziehen.
Übung
Ermitteln Sie das Ergebnis der beiden folgenden Ausdrücke, speichern Sie es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:
- 1. Ausdruck: 12 – 3 >= 4 * 2.5
- 2. Ausdruck: "Maier" Like "M??er"
2.2.3 Logische Operatoren

Logische Operatoren dienen dazu, mehrere Bedingungen zusammenzufassen. Das Ergebnis nutzt man ebenfalls u. a. zur Ablaufsteuerung von Programmen (siehe hierzu auch Abschnitt 2.4). Die logischen Operatoren sehen Sie in Tabelle 2.8.
Operator | Beschreibung | Das Ergebnis ist True, wenn ... |
... der Ausdruck False ist. |
||
... beide Ausdrücke True sind. |
||
... mindestens ein Ausdruck True ist. |
||
Exklusives Oder |
... genau ein Ausdruck True ist. |
Es seien die Variablen A = 1, B = 3 und C = 5 gesetzt. Die Ausdrücke in der ersten Spalte von Tabelle 2.9 ergeben dann jeweils die Ergebnisse in der zweiten Spalte.
Ausdruck | Ergebnis |
Not (A < B) |
False |
(B > A) And (C > B) |
True |
(B < A) Or (C < B) |
False |
(B < A) Xor (C > B) |
True |
Alle Berechnungen innerhalb dieses Abschnitts können Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvollziehen.
Übung
Ermitteln Sie das Ergebnis der beiden folgenden Ausdrücke, speichern Sie es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:
- 1. Ausdruck: 4 > 3 And –4 > –3
- 2. Ausdruck: 4 > 3 Or –4 > –3
2.2.4 Verkettungsoperator

Der Operator & dient zur Verkettung von Zeichenfolgen. Ist einer der Ausdrücke keine Zeichenfolge, sondern eine Zahl oder Datumsangabe, so wird er in einen String verwandelt. Das Gesamtergebnis ist dann wiederum eine Zeichenfolge. Beispiel:
Public Class Form1
Private Sub cmdAnzeige_Click(...) Handles ...
Dim a As String
Dim s As Single
Dim d As Date
d = "18.12.2012"
s = 4.6
a = "t " & s & " " & d
lblAnzeige.Text = a
End Sub
End Class
Listing 2.5 Projekt »Verkettungsoperator«
Das Ergebnis ist in Abbildung 2.10 zu sehen. Ein weiteres Beispiel stand bereits in Abschnitt 1.5.5.
Abbildung 2.10 Verkettung
2.2.5 Zuweisungsoperatoren

Der einfachste Zuweisungsoperator, das Gleichheitszeichen, wurde bereits genutzt. Es gibt zur Verkürzung von Anweisungen noch einige weitere Zuweisungsoperatoren, siehe Tabelle 2.10.
Operator | Beispiel | Ergebnis |
x = 7 |
x erhält den Wert 7. |
|
x += 5 |
Der Wert von x wird um 5 erhöht. |
|
x -= 5 |
Der Wert von x wird um 5 verringert. |
|
x *= 3 |
Der Wert von x wird auf das Dreifache erhöht. |
|
x /= 3 |
Der Wert von x wird auf ein Drittel verringert. |
|
x \= 3 |
Der Wert von x wird auf ein Drittel verringert. Nachkommastellen werden abgeschnitten. |
|
x ^= 3 |
Der Wert von x wird auf x hoch 3 erhöht. |
|
z &= "abc" |
Die Zeichenkette z wird um den Text abc verlängert. |
2.2.6 Rangfolge der Operatoren

Enthält ein Ausdruck mehrere Operationen, so werden die einzelnen Teilausdrücke in einer bestimmten Rangfolge ausgewertet und aufgelöst, die als Rangfolge bzw. Priorität der Operatoren bezeichnet wird. Es gilt die Rangfolge in Tabelle 2.11.
Operator | Beschreibung |
^ |
Exponentialoperator |
- |
negatives Vorzeichen |
*, / |
Multiplikation, Division |
\ |
Ganzzahl-Division |
Mod |
Modulo |
+, - |
Addition, Subtraktion |
& |
Verkettung |
=, <>, <, >, <=, >=, Like |
Vergleichsoperatoren (Das Zeichen = steht für den Vergleich, nicht für die Zuweisung.) |
Not |
logisches Nicht |
And |
logisches Und |
Or |
logisches Oder |
Die Operatoren, die in der Tabelle weiter oben stehen, haben die höchste Priorität.
Wie schon bei den Rechenoperatoren erwähnt: Mit Klammern können Sie diese Rangfolge außer Kraft setzen, damit bestimmte Teilausdrücke vor anderen Teilausdrücken ausgewertet werden. In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Innerhalb der Klammern gilt jedoch wieder die normale Rangfolge der Operatoren.
Übung
Sind die Bedingungen in Tabelle 2.12 wahr oder falsch? Lösen Sie die Aufgabe möglichst ohne PC.
Nr. | Werte | Bedingung |
1 |
a=5 b=10 |
a>0 And b<>10 |
2 |
a=5 b=10 |
a>0 Or b<>10 |
3 |
z=10 w=100 |
z<>0 Or z>w Or w-z=90 |
4 |
z=10 w=100 |
z=11 And z>w Or w-z=90 |
5 |
x=1.0 y=5.7 |
x>=.9 And y<=5.8 |
6 |
x=1.0 y=5.7 |
x>=.9 And Not(y<=5.8) |
7 |
n1=1 n2=17 |
n1>0 And n2>0 Or n1>n2 And n2<>17 |
8 |
n1=1 n2=17 |
n1>0 And (n2>0 Or n1>n2) And n2<>17 |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.