Arbeiten mit .NET: Materialien/ Visual C-Sharp .NET: Mathematische Operatoren

<< Arbeiten mit .NET (Materialien)

Mathematische Operatoren stellen die einfachste Form von Operatoren in C# da. Die zwei wichtigsten Operatoren sind der Zuweisungsoperator "=" und der Additionsoperator "+".

Die 5 GrundrechenartenBearbeiten

Codebeispiel für einfachste Addition
  Code:  

int a, b, c;
a = 5;
b = 6;
c = a + b:

  Output:   c = 11

Dieses Codesegment wollen wir jetzt genauer unter die Lupe nehmen: In der ersten Zeile werden zwei Variablen vom Typ Integer deklariert. (Was war gleich noch mal deklarieren und Integer? Am besten noch mal das Kapitel Variablen durchlesen!) Was in der zweiten und dritten Zeile passiert, kennen wir zwar schon, aber auch hier wird ein Operator benutzt. Nämlich der sog. Zuweisungsoperator. Er weist einer Variablen, die links von diesem Operator steht, einen Wert oder auch das Ergebnis eines Termes, der rechts des entsprechenden Operators steht, zu. Interessant wird es in der 4.Zeile: Hier kommt der sog. Additionsoperator vor. Dieser kann drei Sachen machen:

1.Zwei Variablen addieren
  Code:  

int a = 5, b = 6, c;
c = a + b;

  Output:  

c = 11 

In diesem Beispiel werden die Variablen a und b addiert.

2.Variablen vergrössern und verkleinern.
  Code:  

int a = 5, b = 6;
a++;
b--;

  Output:  

a=6;
b=5; 

Dieses Beispiel zeigt wie Variabeln um eins grösser bzw. kleiner werden.

3.Zwei Terme addieren
  Code:  

int c;
c = (1 + 4) - (3 - 2)

  Output:  

c = 4 

In diesem Beispiel werden die Terme 5 + 1 und 6 + 2 addiert. Dieser Beispiel unterscheidet sich kaum vom ersten Beispiel.

4.Zwei Ausdrücke miteinander verknüpfen
  Code:  

string eins = "Hello";
string zwei = " World!";
string drei = eins + zwei;

  Output:  

drei = "Hello World!" 

In diesem Beispiel werden die Ausdrücke Hello und World! zu dem Ausdruck Hello World! verknüpft

Parallel funktioniert das natürlich auch mit subtrahieren ("-"-Zeichen), multiplizieren ("*"-Zeichen) und dividieren ("/"-Zeichen), nur dabei entfällt der 3. Fall! Noch ein kleines Beispiel dazu:

Ein kleines Beispiel für alle bisher gelernten Grundrechenarten
  Code:  

int a, b;
a = 5;
b = 6;
int Divison = b / a;
int Multiplikation = a * b;
int Addition = a + b;
int Subtraktion = a - b;

  Output:  

Division =  1
Multiplikation = 30
Addition = 11
Subtraktion = -1

AusdruckBearbeiten

Oft werden wir im folgenden über Ausdrücke reden. Allgemein bezeichnet man alles, was rechts vom Gleichheitszeichen steht als einen Ausdruck. Auch Variablen sind ein Ausdruck, wenn sie rechts vom Gleichheitszeichen stehen und einen gültigen Wert haben.

PrioritätBearbeiten

Jetzt kommt ein wenig Mathematik: Wahrscheinlich hat Sie Ihr Mathelehrer früher auch immer mit dem Satz "Punkt vor Strich" genervt. Auch Visual C# kennt diese mathematische Regel. Schauen wir uns dazu folgendes Beispiel an:

int i = 20 * 3 + 4;

Dabei kommt 64 heraus. Wenn man allerdings

int i = 20 * (3 + 4);

schreibt, kommt 140 heraus. Eben aus dem Grund, dass Klammern eine höhere Priorität bei Visual C# - genauso wie in der Mathematik - besitzen. Die genaue Liste steht im Artikel Liste_der_Prioritäten.

Ganzzahlige DivisionBearbeiten

Viele werden sich jetzt fragen, wofür das gut sein soll. Allerdings werden Sie noch sehen, dass ganzzahlige Division ressourcensparender, schneller und einfacher ist, als Gleitkommadivision.

Was ist jetzt aber Ganzzahlendivision genau? Erinnern Sie sich noch an den Matheunterricht in der Grundschule, als Sie noch nicht mit Kommazahlen rechnen konnten? Damals lieferte die Divison "19 / 5" den Wert 3 Rest 4. Genau dieses Ergebnis liefert auch die Ganzzahlendivision mit Visual C#; allerdings benötigt man dazu 2 Operatoren: "/" und "%". Das Zeichen "%" ist der Operator für die Modulo-Operation. Siehe auch   Modulo

int Ergebnis = 19 / 5; //gleich 3, weil integer-Variablen nur Ganzzahlen aufnehmen können.
int Rest = 19 % 5; //gleich 4, weil 19/5 den Rest 4 ergibt.

Eine typische Anwendung für diesen Operator ist beispielsweise die Aufgabe, eine Zahl in ihre Teiler zu zerlegen, wobei man dabei natürlich testen muss, ob der Rest 0 ist.