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.
Priorität
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 man sich bei der Verwendung dieser Regeln nicht sicher ist, so empfiehlt es sich, durch eigene Klammersetzung die Reihenfolge explizit festzulegen.
2.2.1 Arithmetische Operatoren 

Rechen-Operatoren
Arithmetische Operatoren dienen zur Durchführung von Berechnungen. Die folgende Tabelle listet die arithmetischen Operatoren auf:
| Operator | Beschreibung |
|
+ |
Addition |
|
- |
Subtraktion oder Negation |
|
* |
Multiplikation |
|
/ |
Division |
|
\ |
Ganzzahl-Division |
|
^ |
Potenzierung |
|
Mod |
Modulo |
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. Beispiele:
| Ausdruck | Ergebnis |
|
19 / 4 |
4.75 |
|
19 \ 4 |
4 |
|
19 \ 4.6 |
3 |
|
19.5 \ 4.2 |
5 |
Modulo
Der Modulo-Operator Mod berechnet den Rest einer Division. Beispiele:
| Ausdruck | Ergebnis |
|
19 Mod 4 |
3 |
|
19.5 Mod 4.2 |
2.7 |
Zur Potenzierung einer Zahl dient der Operator ^ (hoch). Beispiele:
| 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.
Klammern
Mit Klammern kann diese Rangfolge außer Kraft gesetzt werden, 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 p0206:
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 

Vergleich
Vergleichsoperatoren dienen dazu festzustellen, ob bestimmte Bedingungen zutreffen oder nicht. Das Ergebnis nutzt man unter anderem zur Ablaufsteuerung von Programmen. Der Abschnitt 2.4, »Verzweigung« geht hierauf genauer ein. Die folgende Tabelle führt die Vergleichsoperatoren auf:
| Operator | Beschreibung |
|
< |
kleiner als |
|
<= |
kleiner als oder gleich |
|
> |
größer als |
|
>= |
größer als oder gleich |
|
= |
gleich |
|
<> |
ungleich |
Einige Beispiele:
| Ausdruck | Ergebnis |
|
5 > 3 |
True |
|
3 = 3.2 |
False |
|
5 + 3 * 2 >= 12 |
False |
Like
Darüber hinaus gibt es noch den Operator Like, der zum Mustervergleich dient. Dabei kann man unter anderem die Platzhalter * (eines oder mehrere Zeichen) und ? (genau ein Zeichen) einsetzen. 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 |
Übung p0207:
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 

Logik
Logische Operatoren dienen dazu, mehrere Bedingungen zusammenzufassen. Das Ergebnis nutzt man ebenfalls u. a. zur Ablaufsteuerung von Programmen (siehe hierzu auch den Abschnitt 2.4, »Verzweigungen«). Die logischen Operatoren listet die folgende Tabelle auf:
| Operator | Beschreibung | Das Ergebnis ist True, wenn ... |
|
Not |
Nicht |
... der Ausdruck False ist |
|
And |
Und |
... beide Ausdrücke True sind |
|
Or |
Inklusives Oder |
... mindestens ein Ausdruck True ist |
|
Xor |
Exklusives Oder |
... genau ein Ausdruck True ist |
Es seien die Variablen A = 1, B = 3 und C = 5 gesetzt. Die folgenden Ausdrücke ergeben dann jeweils:
| Ausdruck | Ergebnis |
|
Not (A < B) |
False |
|
(B > A) And (C > B) |
True |
|
(B < A) Or (C < B) |
False |
|
(B < A) Xor (C > B) |
True |
Eine Zusammenstellung der Funktionsweise der logischen Operatoren liefert auch die folgende Wahrheitstabelle:
| Ausdruck 1 | Ausdruck 2 | Not | And | Or | Xor |
|
True |
True |
False |
True |
True |
False |
|
True |
False |
False |
False |
True |
True |
|
False |
True |
True |
False |
True |
True |
|
False |
False |
True |
False |
False |
False |
Übung p0208:
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 

Umwandlung in String
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 frm0209
Private Sub cmdAnzeige_Click( ... ) Handles ...
Dim a As String
Dim s As Single
Dim d As Date
d = "5.11.2007"
s = 4.6
a = "t " & s & " " & d
lblAnzeige.Text = a
End Sub
End ClassDas Ergebnis:
Abbildung 2.10 Verkettung
2.2.5 Zuweisungsoperatoren 

Zeichen =
Der einfachste Zuweisungsoperator, das Gleichheitszeichen, wurde bereits genutzt. Es gibt zur Verkürzung von Anweisungen noch einige weitere Zuweisungsoperatoren:
| 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 

Priorität
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 folgende Rangfolge:
| 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.
Klammern
Wie schon bei den arithmetischen Operatoren erwähnt: Mit Klammern kann diese Rangfolge außer Kraft gesetzt werden, 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 p0210:
Sind die folgenden Bedingungen 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 |



Jetzt online bestellen






