1. Einfacher Zuweisungsoperator =
Speichert den Wert des rechten Ausdrucks in die linke Variable und überschreibt den vorhandenen Wert.
Syntax:
Variable = Wert oder Ausdruck;
int age;
age = 10; // Weise der Variable age den Wert 10 zu
String name;
name= "sam"; // ZeichenkettenzuweisungCode-Sprache: JavaScript (javascript)
2. Null-sensitiver Zuweisungsoperator ??=
Die Zuweisung wird nur ausgeführt, wenn die linke Variable den Wert null hat. Ist die Variable nicht null, bleibt ihr ursprünglicher Wert erhalten.
Syntax:
Variable ??= Wert;
Entspricht folgendem Code:
if (Variable == null) {
Variable = Wert;
}Code-Sprache: JavaScript (javascript)
Beispiel:
void main() {
int? total = null;
total ??= 5;
print(total); // Gibt 5 aus, Zuweisung greift weil total null ist
int? count = 100;
count ??= 200;
print(count); // Gibt 100 aus, Zuweisung greift nicht weil count ungleich null ist
}Code-Sprache: PHP (php)
3. Kombinierte Zuweisungsoperatoren
Kombinieren Rechenoperation und Zuweisung in einem Schritt
Für jeden beliebigen Operator op gilt:
a op= b ist identisch mit a = a op b
| Kategorie | Operator | Bedeutung |
|---|---|---|
| Grundrechenarten | += | Addieren, dann zuweisen |
-= | Subtrahieren, dann zuweisen | |
*= | Multiplizieren, dann zuweisen | |
/= | Gleitkommadivision, dann zuweisen | |
| Ganzzahldivision | ~/= | Ganzzahldivision, dann zuweisen (nur ganzzahliger Quotient) |
| Restwertrechnung | %= | Modulo berechnen, dann zuweisen |
| Bitlinksverschiebung | <<= | Linksverschieben, dann zuweisen |
| Bitrechtsverschiebung | >>= | Rechtsverschieben, dann zuweisen |
| Vorzeichenlose Rechtsverschiebung | >>>= | Vorzeichenlos rechtsverschieben, dann zuweisen |
| Bitweises UND | &= | Bitweises UND, dann zuweisen |
| Bitweises XOR | ^= | Bitweises XOR, dann zuweisen |
| Bitweises ODER | |= | Bitweises ODER, dann zuweisen |
| Funktionsweise aller Rechenoperatoren: | a op= b | a = a op b |
| Praxisbeispiel: | a += b | a = a + b |
Codebeispiel:
void main() {
var num = 2;
// *= Multiplikations-Zuweisung
num *= 3;
print(num); // 6, entspricht num = num * 3
// += Addition
num += 4;
print(num); // 10, entspricht num = num + 4
// -= Subtraktion
num -= 2;
print(num); // 8
// /= Gleitkommadivision
double d = 10;
d /= 2;
print(d); // 5.0
// ~/= Ganzzahldivision
int n = 7;
n ~/= 2;
print(n); // 3
// %= Modulo
int m = 9;
m %= 2;
print(m); // 1
// <<= Linksverschiebung
int bit1 = 1;
bit1 <<= 2; // 1 << 2 = 4
print(bit1); // 4
// >>= Rechtsverschiebung
int bit2 = 8;
bit2 >>= 2; // 8 >> 2 = 2
print(bit2); // 2
// >>>= Vorzeichenlose Rechtsverschiebung
int bit3 = -8;
bit3 >>>= 2;
print(bit3); //4611686018427387902, eine sehr große Zahl
// &= Bitweises UND
int x = 6; // 110
x &= 3; // 011
print(x); // 010 = 2
// ^= Bitweises XOR
int y = 5;
y ^= 3;
print(y);
// |= Bitweises ODER
int z = 4;
z |= 1;
print(z); // 5
}Code-Sprache: PHP (php)
Zur Bitverschiebung: int bit1 = 1; um 2 Bit nach links verschieben,
32-Bit-Binärdarstellung der Dezimalzahl 1:
00000000 00000000 00000000 00000001
x << n: Verschiebe alle Binärbits von x um n Stellen nach links, fülle freie untere Bits rechts mit 0 auf und verwerfe überlaufende obere Bits links.
Aus dem obigen Beispiel ergibt sich:
00000000 00000000 00000000 00000100
Dieser Binärwert entspricht der Dezimalzahl 4
Logische Operatoren behandeln wir an späterer Stelle. Merken Sie sich vorerst nur die Zuweisungsoperatoren – dies ist der zentrale Inhalt dieser Lektion.
void main() {
// 1. Einfache Zuweisung =
var a = 2;
print(a == 2);
// 2. Multiplikationszuweisung *=
a *= 3; // a = a * 3;
print(a == 6);
// 3. Additionszuweisung +=
a += 4; // a = a + 4;
print(a == 10);
// 4. Null-sensible Zuweisung ??=
int? b; // Standardwert null
b ??= 20;
print(b == 20);
b ??= 99; // b ist nicht null, keine Änderung
print(b == 20);
// 5. Subtraktion -=
a -= 5;
print(a == 5);
// 6. Modulo %=
a %= 3;
print(a == 2);
}Code-Sprache: Dart (dart)
Alle Ausgaben ergeben true