robotik:lektion1:10_rueckgabewerte [NwT am Albert-Einstein-Gymnasium Reutlingen]

Benutzer-Werkzeuge

Webseiten-Werkzeuge


robotik:lektion1:10_rueckgabewerte

10 Rückgabewert von Methodenaufrufen

In den bisherigen Beispielen hast du bereits gesehen, wie man mit Hilfe von Parametern Zusatzinformationen vom aufrufenden Programm an einen Methodenaufruf übergibt. Umgekehrt ist es auch möglich, dass eine Methode nach ihrem Aufruf eine Information an das aufrufende Programm zurückgibt. Dies erfolgt mittels eines sogenannten Rückgabewerts der Methode. Nicht jede Methode liefert einen Rückgabewert an das aufrufende Programm. Für die Klasse XKonsole gibt die Online-Dokumentation Aufschluss darüber, welche Methoden einen Rückgabewert besitzen und welche nicht. Dazu siehst du hier noch einmal die Methodenzusammenstellung der Klasse:

Dokumentation zur Klasse XKonsole

Alle Methodenvarianten, bei denen vor dem Methodennamen das Schlüsselwort void steht, liefern keinen Rückgabewert. Bei den anderen Methodenvarianten steht statt des Wortes void ein Datentyp vor dem Methodennamen, z.B. der Datentyp int bei der Methode leseGanzzahl(). Diese Methode besitzt also einen Rückgabewert vom Datentyp int. Die Aufgabe dieser Methode besteht offensichtlich darin, eine vom Anwender während des Programmlaufs im Konsolenfenster einzugebende ganze Zahl einzulesen und an das aufrufende Programm zurückzumelden. In den meisten Fällen muss eine von einer Methode zurückgelieferte Information zunächst einmal gespeichert werden, damit sie dann verarbeitet werden kann. Im Falle unserer Konsolenanwendungen könnte das z.B. so aussehen:

float x = konsole.leseZahl("Bitte eine Fließkommazahl eingeben: ");
int n = konsole.leseGanzzahl("Bitte einen ganzzahligen Multiplikator eingeben: ");
float ergebnis = x * n;
konsole.schreibe("Das Produkt lautet: ");
konsole.schreibeZeile(ergebnis);

In der ersten Zeile wird eine neue Fließkommavariable vom Datentyp float und mit Namen x deklariert. Das anschließende Zuweisungszeichen “=” teilt dem Compiler mit, dass die Variable sofort initialisiert werden soll. Statt einer konkreten Zahl folgt jetzt aber der Methodenaufruf von leseZahl. Da der Compiler weiß, dass die Methode leseZahl beim Aufruf einen Rückgabewert vom Datentyp float liefert, gibt es beim Übersetzen des Programms keine Probleme. Beim Programmdurchlauf wird also die Methode leseZahl aufgerufen und die neue Variable x mit dem Rückgabewert (d.h. der vom Anwender eingegebenen Zahl) initialisiert. Die zweite Zeile des Beispielprogramms funktioniert in ähnlicher Weise, nur dass hier eine neue Ganzzahl-Variable mit dem Rückgabewert des Aufrufs der Methode leseGanzzahl initialisiert wird.

Aufgabe

Erzeuge im Projekt Konsole ein neues Beispielprogramm Eingabe und ersetze das automatisch generierte Beispielprogramm durch die oben angegebenen Programmzeilen. Ergänze das Programm durch weitere Programmzeilen, so dass der Anwender im Anschluss nochmals zur Eingabe einer Fließkommazahl sowie einer ganzen Zahl aufgefordert wird und dann erneut das Produkt dieser Zahlen angezeigt wird. Verwende dabei wieder die bereits deklarierten Variablen x, n und ergebnis, um die Zahlen zwischenzuspeichern. Teste das Programm in mehreren Durchläufen und zeige es anschließend deinem Betreuer.

robotik/lektion1/10_rueckgabewerte.txt · Zuletzt geändert: 2016/09/22 17:51 von gollnik