4.05) Mathematische Zuweisung

Es ist in JM° auch möglich, mit Variablen direkt zu rechnen.

Increment, Decrement

Der Typ Number bietet uns die Funktionen "++" und "--", womit wir den Wert erhöhen oder senken können:

3++.print
3--.print

Die Funktion ".print" hat hier eine höhere Priorität. Allerdings wird der Funktion "++" kein Parameter übergeben, weshalb sich ".print" nur auf das Ergebnis von "3++" (4) beziehen kann.

Bei Verwendung einer Variable, kann der Wert in der Variable direkt verändert werden:

a = 5
a++
a.print

Der Befehl "a++" entspricht dabei:

a = a + 1

Ebenso kann der Wert gesenkt (decrement) werden:

a--

Hier kann übrigens auch ein Parameter übergeben werden. So wird der Wert um z.B. 5 erhöht:

a++5

Dies entspricht:

a = a + 5

 

Notiz:
Ein Pre-Increment (++a) wird von JM° nicht unterstützt, da der Aufbau immer "Objekt --> Funktion" ist.

Potenz

Die Potenz einer Zahl kann wie folgt berechnet werden:

5**

Ebenso können wir direkt den Wert einer Variable potenzieren:

n = 5
n**
n.print

Hier wird die Zahl mit sich selbst multipliziert. Somit entspricht dies:

n = n*n

Auch hier kann ein Parameter übergeben werden, womit die jeweilige Potenz berechnet wird:

n = 5
n**4
n.print

Dies Entspricht "n*n*n*n" und ergibt 625.

Wurzel / Logarithmus

Als direktes Gegenstück zur Potenz kann aus einer Zahl die Wurzel berechnet werden.

25//.print

Oder bei Verwendung einer Variable:

n = 25
n//
n.print

Ebenso ist hier ein Parameter möglich:

n = 625
n//4
n.print # Ergibt: 5

Berechnung mit Zuweisung

Zudem gibt es die Möglichkeit einen Wert direkt zu berechnen und zuzuweisen

a += 5     #Entspricht: a= a+5
a -= 5     #Entspricht: a= a-5
a *= 5     #Entspricht: a= a*5
a /= 5     #Entspricht: a= a/5
a %= 5     #Entspricht: a= a%5

Als Bit-Operationen ist für Zahlen auch folgendes möglich:

a = 7
a &= 3     #Entspricht: a= a & 3
a |= 3     #Entspricht: a= a | 3
a ^= 3     #Entspricht: a= a ^ 3

Wenn die Variable vom Typ "Bool" ist, sind auch folgende Logik-Operationen möglich:

b = true
b &&= true     #Entspricht: b= b && true
b ||= true     #Entspricht: b= b || true
b ^^= true     #Entspricht: b= b ^^ true