7. Funktionen
7.1 Funktionen Grundlage
Um das Prinzip von Funktionen zu verstehen, muss man den Namen (Funktion) Wort wörtlich nehmen, denn sie erledigen, wie der Name schon sagt, eine Funktion. Funktionen können verschiedenste Aufgaben erledigen und sind immer aufrufbar, z.B. können sie auf Abruf eine Ausgabe auf die Konsole tätigen. Wie das Funktioniert, schauen wir uns jetzt an.
Um eine Funktion zu erstellen, müssen wir in
die Klasse des Programmes eindringen. In unserem Fall nennt sich die Klasse
Program. Im Grunde haben wir uns schon während der gesamten Lernreihe in einer
Funktion bewegt, nämlich in der Main Funktion.
Wir erstellen eine lehre Funktion, also eine Funktion, die nichts zurück gibt. Der dafür verwendete Begriff in der Programmierung ist void. Wir schreiben in die Klassen void und nachträglich den Namen der Funktion, in diesen Fall nennen wir sie Funktion1. Danach setzten wir ihr noch zwei Klammern nach. Diese sind für die Parameter. Was das genau ist, schauen wir uns später an. Um der Funktion eine Aufgabe zu übergeben, müssen wir in zwei geschweifte Klammern schreiben, was die Funktion erledigen soll. In unserem Fall, wird die Funktion einen Text ausgeben. Was ihr in den Text hinein schreibt, ist völlig egal.
class Program { void Funktion1(){ Console.WriteLine("Ich bin ein CodeStarter"); }
Um
die Funktion aufzurufen, müssen wir in der Main Methode ein neues Objekt
erstellen. Das Objekt wird uns später dabei behilflich sein, die Funktion
aufzurufen. Es wird wie folgt erstellt:
Program p = new Program();
Um
die Funktion aufzurufen, nutzen wir das neu erstellte Objekt p. Wenn wir den
Buchstaben p in die Main Methode schreiben, wird uns die Funktion1 dann
angezeigt, wenn wir einen Punkt hinterher schieben.
p.Funktion1();
Wenn du das Programm jetzt laufen lässt, wird dir in der Konsole der Text „Ich bin ein CodeStarter“ ausgegeben.
7.2 Funktionen erweitert
7.2.1 Funktion mit Parameter
Offensichtlich gibt es nicht nur eine Art von Funktionen. Es gibt sie mit Rückgabewert, Parameter, oder auch mit verschiedenen Datentypen als Rückgabewert.
Hier ein paar Beispiele für Funktionen mit Parameter. Wenn wir eine Funktion mit Parameter programmieren, dann müssen wir in der Main Methode beim Aufrufen zwingend ein Wert mitgeben. Im folgenden Beispiel müssen wir z.B. einen Wert des Datentyps String mitgeben. Damit die Funktion auch weiß, unter welchem variablen Namen der Wert gespeichert wird, müssen wir sie immer benennen. In diesem Fall heißt sie a.
//Mit einem Parameter Typ String, ohne Rückgabewert void Funktion2(string a){ Console.WriteLine("Ich habe {0} mitgegeben", a); }
Aufrufen müssen wir die Funktion2 wie
folgt.
Auch hier
ist es völlig egal, was ihr der Funktion als Parameter mitgebt.
p.Funktion2("Hallo");
Die Anzahl an Parametern die man einer
Funktion mitgeben will, ist quasi Grenzenlos. Wichtig ist jedoch, dass man sie
mit einem Komma abtrennt.
//Mit 2 Parameter Typ int, ohne Rückgabewert void Funktion3(int a, int b){ Console.WriteLine("Die Summe von {0} und {1} ist {2}", a, b, a + b); }
Die Funktion3 rufen wir wie folgt auf:
p.Funktion3(5,9);
Die Parameter die wir hier übergeben,
können innerhalb der Funktion mit a und b genutzt werden. Mithilfe der
geschweiften Klammern in der Konsolenausgabe, schaffen wir einen Platz, in den
wir den Wert von a und b platzieren können. Dafür müssen wir jedoch nach der
Zeichenkette mit einem Komma abgetrennt die variablen Namen angeben, die an
Position 0 und 1 eingesetzt werden sollen. Die Addition aus a und b wird an die
Position 2 übergeben.
7.2.2 Funktion mit Rückgabewert
Im folgenden Beispiel haben wir eine Funktion mit zwei Parametern und einem Rückgabewert. Sobald wir in einer Funktion einen Rückgabewert haben, muss ein Wert zwingend mit dem Befehl return zurückgegeben werden. Außerdem starten wir die Funktion nichtmehr mit void, sondern mit dem entsprechenden Datentyp, der zurück gegeben wird. Was wir anschließen mit dem Wert anstellen ist uns überlassen.
Die beiden Parameter werden nach der Größe
der Zahl verglichen. Die größere ermittelte Zahl soll dann zurückgegeben
werden.
//Mit 2 Parameter Typ int, mit Rückgabewert Typ int int Funktion4(int a, int b){ if (a > b){ return a; } else { return b; } }
Nun rufen wir die Funktion auf, geben
ihr zwei Parameter mit, und wollen die größere Zahl von Beiden in eine Variable
abspeichern.
int groessereZahl = p.Funktion4(3,8); Console.WriteLine("Der grösste Wert, ist {0}", groessereZahl);
Nun lernen wir neben dem String, int und dem double einen weiteren Datentyp kennen, nämlich den bool. Er kennt nur zwei Werte, true und false. In diesem Beispiel geben wir der Funktion zwei Parameter mit, welche sie nach ihrer Gleichheit überprüfen soll. Wenn sie gleich sein sollten, ist der Rückgabewert true, ansonsten logischerweise false.
//Mit 2 Parameter Typ int, mit Rückgabewert Typ bool bool Funktion5(int a, int b){ if (a == b){ return true; } return false; }
Als Beispiel können wir den Rückgabewert der Funktion5 in eine Variable des Datentyps bool speichern und anschließend überprüfen, was denn nun das Ergebnis ist.
bool ergebnis = p.Funktion5(10, 10);
if (ergebnis == true){ Console.WriteLine("Die Werte sind gleich"); } else{ Console.WriteLine("Die Werte sind nicht gleich"); }