• Home
  • |
  • Blog
  • |
  • C# Tutorial [3/17] – Mathematische C# Operatoren

C# Tutorial [3/17] – Mathematische C# Operatoren

Zuletzt aktualisiert: Juni 28, 2023

Die mathematischen C# Operatoren ermöglichen es uns, innerhalb unseres Codes Berechnungen durchzuführen. Wie das genau in der Praxis aussieht, wirst du in den folgenden Zeilen erfahren.

Inhaltsverzeichnis

1. Was sind mathematische C# Operatoren

Wie bereits zu Beginn erwähnt, können wir mithilfe von mathematischen Operatoren in unserem Code Berechnungen durchführen. Dabei stehen uns in C# Operatoren für alle Grundrechenarten, also für Addition, Subtraktion, Multiplikation und Division zur Auswahl. Diese werden wir uns gleich direkt an verschiedenen Beispielen in der Entwicklungsumgebung Visual Studio ansehen.

Darüber hinaus gibt es noch den sogenannten Modulo-Operator, der auch als Restwert-Operator bekannt ist. Damit du auch diesen genau verstehst, werden wir ihn uns im späteren Verlauf des Artikels an einem gesonderten Beispiel ansehen. 

2. Die Grundrechenarten

An dieser Stelle schreiten wir also direkt zur Praxis und beginnen zunächst einmal damit, uns die C# Operatoren für die Grundrechenarten anzusehen.

2.1. Addition

Um eine Berechnung innerhalb des Codes durchzuführen, ist es notwendig, sogenannte mathematische Ausdrücke zu bilden.

Ein mathematischer Ausdruck ist im Grunde so etwas wie „2 + 5“. Eine Rechnung also, die ein Ergebnis liefert. Wenn wir in unserem Code so einen mathematischen Ausdruck schreiben, gibt dieser immer ein Ergebnis zurück. In diesem Fall haben wir den mathematischen Ausdruck „2 + 5“, der das Ergebnis 7 zurückgibt.

Sehen wir uns das Ganze nun anhand eines einfachen Beispiels an. Dazu schreiben wir eine einfache Konsolenausgabe mit Console.WriteLine und übergeben als Parameter keine feste Zahl, sondern einen mathematischen Ausdruck:

c# operatoren beispiel mathematischer ausdruck

Was gibt uns die Konsole nun aus? Sie gibt uns nicht die Rechnung aus, wie man es vermuten könnte, sondern direkt den Wert 7. Dieser ist nämlich das Ergebnis, das wir von diesem mathematischen Ausdruck erhalten:

konsolenausgabe beispiel 1

Und auf diese Weise rechnen wir im Grunde innerhalb unseres Codes. Wir können natürlich auch komplexere Terme mit Klammern etc. aufstellen, was wir im weiteren Verlauf dieses Artikels ebenfalls noch umsetzen werden.

Für ein weiteres Beispiel erstellen wir nun eine Integer Variable namens zahl1, die wir auf den Wert 5 setzen. Anschließend erstellen wir eine weitere Variable, die wir zahl2 nennen und auf den Wert 10 setzen. Nun benötigen wir noch eine dritte Variable, die wir ergebnis nennen und weisen dieser den Term zahl1 + zahl2. Anschließend lassen wir uns das Ergebnis dieses Terms noch auf der Konsole ausgeben lassen:

c# operatoren beispiel 2

Da die Variablen zahl1 und zahl2 vom Typ Integer sind, können wir diese ganz normal in einem mathematischen Ausdruck verwenden und mit diesen rechnen. Wenn wir das Programm nun starten, sehen wir den Wert 15 als Ergebnis:

ergebnis beispiel 2

Doch warum ist das so? Wir geben die Variable ergebnis aus, die wir auf zahl1 + zahl2 gesetzt haben. Zahl1 enthält den Wert 5, zahl2 den Wert 10. Somit rechnen wir 5 + 10, was 15 ergibt.

2.2. Subtraktion

Neben der Addition können wir selbstverständlich auch andere Rechenarten verwenden. Es ist also beispielsweise auch möglich, im vorherigen Beispiel anstatt der Addition eine Subtraktion durchzuführen, bei der wir das Ergebnis -5 erhalten (weil: 5 -10 = -5):

c# operatoren subtraktion beispiel
subtraktion beispiel ausgabe

2.3. Multiplikation

Um zu multiplizieren, schreiben wir den *-Operator zwischen zwei Werte, die miteinander malgenommen werden sollen:

c# operatoren multiplikation beispiel
multiplikation beispiel ausgabe

2.4. Division

Eine Division hingegen lässt sich mithilfe des /-Operators durchführen:

c# operatoren division beispiel

Führen wir nun das Programm aus, erhalten wir den Wert 0 in der Konsole:

division beispiel ausgabe

Da die 5 halb so groß ist wie die 10, sollten wir normalerweise 0.5 als Ergebnis erhalten. Weil wir jedoch festgelegt haben, dass der Datentyp von der Variable ergebnis ein Integer ist, können wir hier nur Ganzzahlen hineinspeichern. Dementsprechend werden die Nachkommastellen vom Ergebnis abgeschnitten und wir erhalten in der Konsole lediglich den Wert 0, weil wir durch den Integer die Nachkommastellen nicht anzeigen lassen können.

Wenn wir hingegen 50 / 10 rechnen, erhalten wir wie erwartet die 5:

c# operatoren division beispiel 2
division beispiel 2 ausgabe
Wie du siehst, kann man die Grundrechenarten also ganz einfach im Code verwenden, indem man mathematische Ausdrücke bildet. Die dafür gebräuchlichen C# Operatoren sind das + für die Addition, das - für die Subtraktion, das * für die Multiplikation und das / für die Division.

3. Komplexere Terme erstellen

Weiter oben habe ich bereits erwähnt, dass wir auch komplexere Rechnungen formulieren können. Das kann zum Beispiel das Rechnen mit Klammern sein. Hierzu schreiben wir nun einmal bei ergebnis den Term zahl1 + zahl2 * 5 als Beispiel.

komplexere terme erstellen beispiel

Was würde das Programm hier nun zuerst rechnen? In diesem Fall gilt Punkt vor Strich. Es würde somit zuerst zahl2 * 5 rechnen, was den Wert 50 ergibt und anschließend zahl1 + 50. 

Als Ergebnis erhalten wir dann 100:

komplexere terme beispiel ausgabe

Wollen wir nun allerdings, dass zahl1 und zahl2 zuerst miteinander addiert werden, bevor wir das Ganze mal 5 nehmen, können wir Klammern setzen:

komplexe terme alternatives beispiel

Wie auch in der Schule setzen wir Klammern, wenn wir beispielsweise möchten, dass etwas vor der Punkt-vor-Strich-Regel miteinander addiert wird. Das, was zwischen den Klammern steht, berechnet das Programm dann als eine Einheit und rechnet dann mit dem Rest des Ausdrucks weiter.

So rechnen wir dann zahl1 + zahl2, also 50 + 10, wodurch wir 60 erhalten. Die 60 nehmen wir noch mal 5 und erhalten so 300:

komplexe terme alternatives beispiel ausgabe

Lassen wir die Klammern hingegen weg, erhalten wir ein komplett anderes Ergebnis, wie das nachfolgende Beispiel zeigt:

komplexe terme alternatives beispiel 2
komplexe terme alternatives beispiel 2 ausgabe

Die Punkt-vor-Strich-Regel gilt also auch innerhalb von C# Code und wie wir Klammern setzen, beeinflusst das Ergebnis, das wir erhalten. Divisionen und Multiplikationen werden also zuerst gerechnet, anschließend folgt der Rest des Terms.

4. Der Modulo-Operator

Anfangs habe ich bereits angekündigt, dass wir auch den Modulo-Operator in diesem Blogartikel kennenlernen werden. Sehen wir uns diesen also nun einmal genauer an!

Den Modulo-Operator bezeichnet man auch als Restwert-Operator. Dieser gibt uns, wie der Name schon verrät, den Rest einer Division zurück. Man schreibt ihn als %-Zeichen.

An einem einfachen Beispiel können wir den Modulo-Operator nun direkt ausprobieren. Da er einen Restwert zurückgibt, erstellen wir eine Variable, die vom Typ Integer ist und nennen diese restwert. Darin speichern wir nun 10 % 8.

c# operatoren modulo beispiel

Was geschieht nun?

Das Programm teilt 10 durch 8 und gibt uns den Divisionsrest zurück. Schließlich benutzen wir hier nicht den Divisions-Operator (/), sondern den Modulo-Operator (%).

Welchen Wert erhalten wir nun als Rest?

Die 8 passt einmal in die 10, übrig bleiben 2.

Das heißt: Lassen wir uns nun die Variable restwert mit Console.WriteLine ausgeben, stellen wir fest, dass jetzt die Zahl 2 in der Konsole steht:

c# operatoren modulo beispiel erweitert
modulo beispiel ausgabe

Wenn wir beispielsweise 8 / 4 schreiben, erhalten wir eine glatte 2. Die 4 passt in die 8 nämlich genau 2-mal. Sehen wir uns das Ergebnis einmal direkt in der Konsole an:

modifiziertes beispiel divisions operator

Rechnen wir nun aber 8 % 4, erhalten wir den Rest der Division. Der Rest ist hierbei 0, da die Rechnung glatt aufgeht. Führen wir das Programm aus, sehen wir in der Konsole den Wert 0:

c# operatoren modul beispiel 2 ausgabe

Das ist also der Modulo-Operator, mit welchem wir ganz einfach einen Divisionsrest herausfinden. Doch wofür brauchen wir ihn eigentlich?

Ein klassisches Beispiel: Wir möchten herausfinden, ob eine Zahl gerade oder ungerade ist. Eine Zahl ist immer dann gerade, wenn der Rest der Zahl geteilt durch 2 gleich 0 ist. Dann wissen wir, sie ist durch 2 teilbar, also muss sie gerade sein.

Auch wenn wir ein Schaltjahr berechnen möchten, benötigen wir den Modulo-Operator. Es gibt also auch in der Praxis einige Anwendungsgebiete. Wir benötigen ihn also immer dann, wenn ein Divisionsrest von Relevanz ist.

An dieser Stelle sind wir auch schon am Ende dieses Artikels über die verschiedenen C# Operatoren angekommen. Du weißt nun, wie du im Code Berechnungen durchführen kannst und was es mit dem Modulo-Operator auf sich hat.

Im nächsten Blogbeitrag werden wir die sogenannten if-Abfragen genauer unter die Lupe nehmen und somit eine Reihe neuer Möglichkeiten für das Programmieren eines eigenen Programmes kennenlernen!